如何在gridview中禁用命令字段控件中的控件
如何在gridview中查找命令字段控件。
在不在行数据绑定中的方法中。
到目前为止,我已经使用了这个编码,但我找不到控件。
源代码:
ImageButton edit = (ImageButton)EmployeeDetails.FindControl("Image"); edit.Enabled = false;
你可以用,禁用列本身,
GridView1.AutoGenerateEditButton = false;
来自页面后面的代码。
或者您可以使用ItemTemplate而不是CommandField,
在代码后面,您可以遍历GridView行并禁用每个LinkButton。
foreach(GridViewRow gvr in GridView1.Rows) { LinkButton row = gvr.FindControl("id") as LinkButton; row.Enabled = false; }
第一编辑:
我尝试了我的第二个解决方 但是,在使用foreach
之前,请确保已填充GridView
。 否则, GridView.Rows.Count
可能为0。
第二编辑:
这也适用于CommandField
。 在GridView
中将0替换为CommandField
的位置。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[0].Enabled = false; } }
你错过了指定行
就像是 :
ImageButton edit = (ImageButton)EmployeeDetails.Rows[0].Cells[0].FindControl("Image"); edit.Enabled = false;
如果要禁用包含imageButton的列,可以执行以下操作:
EmployeeDetails.Columns[0].Visible = false;
试试这个:
try to hide controls at DataBound or RowDataBound event of GridView protected void EmployeeDetails_DataBound(object sender, EventArgs e) { ImageButton edit = (ImageButton)EmployeeDetails.Row.Cells[0].FindControl("Image"); edit.Visible = false; edit.Enabled = false; //OR use this line }
可以通过以下方式禁用特定列
EmployeeDetails.Columns[0].Visible = false;
希望这可以帮助。
我有一个类似的问题。 我只是在BindData()
函数中禁用了Column的视图 。
GridView1.Columns[0].Visible = false;
这对我有用,因为我的第一列是编辑专栏,我必须仅为特定用户启用它。
祝好运!
将其强制转换为DataControlFieldCell,然后将Enabled设置为false。
其中:row.Controls [0]是您的CommandField控件
foreach (GridViewRow row in ManageDNXGridView.Rows) { DataControlFieldCell editable = (DataControlFieldCell)row.Controls[0]; editable.Enabled = false; }
- 为什么Request ==“dev.testhost.com:1234”而Request.Url.Host ==“localhost”
- Microsoft.Office.Interop是否可以安全地用于(文件转换)网站?
- 更改UpdatePanel外部的TextBox中的文本
- 自定义模板化asp.net控件的双向数据绑定
- 使用protobuf-net序列化枚举时出现InvalidOperationException
- Asp.NET MVC:使用POST动作重定向到另一个控制器
- 为什么ASP.NET Identity 2.0使用GUID /字符串作为用户ID?
- LINQ包含在一对多的.Where()无法正常工作?
- 关闭浏览器上的Session_End代码