Gridview禁用1列asp.net上的编辑

时间:2011-08-24 06:51:07

标签: c# asp.net visual-studio-2010 gridview edit

我正在使用gridview编辑来编辑我在gridview中的值,当我按下编辑时,所有列都可以编辑,我希望不允许编辑其中一列。

我有什么方法可以做到这一点吗?

这是我的aspx代码:

<asp:GridView 

ID="GridView1" 
runat="server" 
AllowSorting="True" 
OnRowCommand="GridView1_SelectedIndexChanged1" 
AutoGenerateEditButton="True" 
OnRowCancelingEdit="GridView1_RowCancelingEdit" 
CellSpacing="10"
OnRowUpdating="GridView1_RowUpdating" ShowFooter="True" 
onselectedindexchanged="GridView1_SelectedIndexChanged"
OnRowEditing="GridView1_RowEditing">



</asp:GridView>

由于

4 个答案:

答案 0 :(得分:24)

如果您使用asp:BoundField,请尝试

<asp:BoundField DataField="CustomerID"
        ReadOnly="true"      
        HeaderText="Customer ID"/>

否则,如果您使用asp:TemplateField,则可以

  1. asp:LabelEditItemTemplate
  2. 内呈现
  3. 完全忽略该列的EditItemTemplate

答案 1 :(得分:5)

当然,请使用EditItemTemplate。在以下示例中,不会在编辑模式下编辑字段ID:

<asp:GridView runat="server">
    <Columns>
        ...
        <asp:TemplateField HeaderText="ID">
            <EditItemTemplate>
                <%# Eval("ID") %>
            </EditItemTemplate>
        </asp:TemplateField>
        ...
    </Columns>
</asp:GridView>

答案 2 :(得分:0)

请显示一些标记。快速而肮脏我认为根据您的标记aspx,您可以从EditItem模板中删除要阻止编辑的列的文本框...当然还有其他解决方案:)

答案 3 :(得分:0)

如果您使用的是模板字段

((TemplateField)gvGridView.Columns[index]).EditItemTemplate = null;

如果是boundfield

((BoundField)gvGridView.Columns[index]).ReadOnly = true;