假设我在页面上有一个GridView。 GridView启用了编辑列并显示了一些记录。如何根据其他数据字段启用/禁用行编辑?
答案 0 :(得分:2)
您可以通过多种方式完成此操作。其中两个是:
首先将编辑列转换为模板字段。
无论您想要启用/禁用哪个字段,都可以添加GridView的DataKeyNames属性。
然后在OnRowDataBound事件上,您可以执行以下操作:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Normal)
{
var LinkButton1 = (LinkButton)e.Row.FindControl("LinkButton1");
LinkButton1.Enabled = GridView1.DataKeys[e.Row.RowIndex].Value == "SomeValue"; //Or some other logic, like converting to a boolean
}
}
或者,
在您的aspx页面的Html标记中,编辑linkbutton enabled属性以绑定您想要的字段。如:
<asp:LinkButton ID="LinkButton1" runat="server" Text="Edit" Enabled='<%# Convert.ToBoolean(Eval("SomeField")%>'></asp:LinkButton>
希望有所帮助。