如题
如何让DataGrid每行的编辑列上的编辑按钮根据选定的条件变的可/不可点击
就和Control.Enabled=false/true
类似
------解决方案--------------------------------------------------------
编辑按钮做成模版列,item_databound,根据条件按钮findcontrol,Control.Enabled=false/true .
试试
------解决方案--------------------------------------------------------
没试过~~关注~
------解决方案--------------------------------------------------------
如果使用的是模板列和linkbutton
在RowDataBound事件中
if(e.Row.RowType==DataControlRowType.DataRow)
{
if(判断值为真)
{
LinkButton lbE = (LinkButton)e.Row.FindControl("lbEdit");
lbE.OnClientClick = "javascript:return false;"; //如果使用js判断是否编辑或删除,使用这行代码.没有就不用.
lbE.Enabled = false;
}
}
不知道是不是楼主要的效果.
------解决方案--------------------------------------------------------
1 将编辑列转换成模板列
2 进入 html代码视图,将编辑的linkbutton的id 改为lbtnEdit
3 在gridview的rowdatabound事件中
- C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.EmptyDataRow) { LinkButton lbtnEdit = e.Row.FindControl("lbtnEdit") as LinkButton; if(要让编辑按钮不可用的条件) { lbtnEdit.Enabled = false; } } }
------解决方案--------------------------------------------------------
如果使用的是模板列和linkbutton
在RowDataBound事件中
if(e.Row.RowType==DataControlRowType.DataRow)
{
if(判断值为真)
{
LinkButton lbE = (LinkButton)e.Row.FindControl("lbEdit");
lbE.OnClientClick = "javascript:return false;"; //如果使用js判断是否编辑或删除,使用这行代码.没有就不用.
lbE.Enabled = false;
}
}
不知道是不是楼主要的效果.
------解决方案--------------------------------------------------------
不知道你要什么效果
- C# code
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) //判断是否为数据行,要不有可能是标题行,执行会出错。 { TableCell myTableCell = (TableCell)e.Row.Controls[4]; LinkButton btn = (LinkButton)myTableCell.Controls[0]; btn.Enabled=false } }