Gridview отключить редактирование на 1 столбце asp.net - PullRequest
8 голосов
/ 24 августа 2011

Я использую Редактирование вида сетки, чтобы редактировать значения, которые есть в моем виде сетки. Когда я нажимаю Редактировать, можно редактировать все столбцы, я хотел бы, чтобы один из столбцов не мог редактироваться.

Есть ли способ, которым я могу это сделать?

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

24 голосов
/ 24 августа 2011

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

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

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

  1. Отобразите это либо в asp:Label внутри EditItemTemplate
  2. Пропустить EditItemTemplate для этого столбца в целом
5 голосов
/ 24 августа 2011

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

<asp:GridView runat="server">
    <Columns>
        ...
        <asp:TemplateField HeaderText="ID">
            <EditItemTemplate>
                <%# Eval("ID") %>
            </EditItemTemplate>
        </asp:TemplateField>
        ...
    </Columns>
</asp:GridView>
0 голосов
/ 07 декабря 2011

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

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

если поле ограничено

((BoundField)gvGridView.Columns[index]).ReadOnly = true;
0 голосов
/ 24 августа 2011

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

...