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 вы можете
- сделать это в любом 
asp:LabelвнутриEditItemTemplate - 
пропустить на 
EditItemTemplateдля этой колонки в целом 
пожалуйста, покажите некоторую разметку. Быстрый и грязный я думаю, что в зависимости от вашей разметки aspx вы можете удалить текстовое поле из шаблона EditItem для столбца, который вы хотите предотвратить редактирование... конечно, есть и другие решения:)
Если вы используете поле шаблона
((TemplateField)gvGridView.Columns[index]).EditItemTemplate = null;
Если boundfield
((BoundField)gvGridView.Columns[index]).ReadOnly = true;