在GridView行中可选编辑?

时间:2010-11-08 10:03:54

标签: asp.net gridview

假设我在页面上有一个GridView。 GridView启用了编辑列并显示了一些记录。如何根据其他数据字段启用/禁用行编辑?

1 个答案:

答案 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>

希望有所帮助。