将GridView第一行或特定行设置为只读

时间:2014-07-10 03:26:05

标签: c# asp.net gridview row commandfield

将gridview中的特定列设置为只读是非常简单的。 但我只需要将第一行或选定行设为只读。是否有可能在不影响其他可编辑行的情况下实现此目的。

这是我目前的代码。 (样品)

   <Columns>                
        <asp:CommandField ShowEditButton="True" HeaderText="Edit" />
        <asp:BoundField DataField="Col1" ReadOnly="true" />
        <asp:BoundField DataField="Col2" ReadOnly="false" />
        <asp:BoundField DataField="Col3" ReadOnly="false" />

在行视角中。第一列始终是只读的,其他两行是可编辑的。 我不想在第一行显示编辑按钮。我希望第一行完全是只读的。怎么做到这一点?

修改

如果上面的内容难以实现,那么我想知道如何将datatable中的第一行添加到gridview的页脚行中(假设commandField不会向页脚添加编辑按钮...)

1 个答案:

答案 0 :(得分:0)

要使第一行不可编辑,您可以使用GridView的RowDataBound事件并隐藏修改按钮

首先将您的CommandField转换为TemplateField并隐藏RowDataBound事件中的修改按钮,

尝试类似

的内容
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (e.Row.RowIndex == 0)
        {
            e.Row.FindControl("EditLinkButtonName").Visible = false;
        }
    }
}