GridView отключить редактирование в 1 столбце asp.net

Я использую GridView Edit для редактирования значений, которые у меня есть в моем gridview, когда я нажимаю edit, все столбцы могут быть отредактированы, я хотел бы, чтобы один из столбцов не разрешалось редактировать.

есть ли способ сделать это?

Это мой код 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 ответов


конечно, используйте EditItemTemplate. В следующем примере поле ID не будет редактироваться в режиме редактирования:

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

если вы используете asp:BoundField попробуй

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

или если вы используете asp:TemplateField вы можете

  1. сделать это в любом asp:Label внутри EditItemTemplate
  2. пропустить на EditItemTemplate для этой колонки в целом

пожалуйста, покажите некоторую разметку. Быстрый и грязный я думаю, что в зависимости от вашей разметки aspx вы можете удалить текстовое поле из шаблона EditItem для столбца, который вы хотите предотвратить редактирование... конечно, есть и другие решения:)


Если вы используете поле шаблона

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

Если boundfield

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