允许编辑一列但不允许编辑另一列

时间:2011-10-04 21:26:53

标签: c# asp.net gridview

我有一个asp.net c#应用程序。

我的gridview有一个包含2个字段的数据源。

用户无法编辑1个字段,但我需要另一个字段可编辑!

这可能吗?

3 个答案:

答案 0 :(得分:22)

在您不想编辑的所有内容上设置ReadOnly="true"属性。

查看http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.readonly.aspx

该页面的快速示例

<asp:gridview id="CustomersGridView" 
    datasourceid="CustomersSqlDataSource" 
    autogeneratecolumns="false"
    autogenerateeditbutton="true"
    allowpaging="true" 
    datakeynames="CustomerID"  
    runat="server">

    <columns>
      <asp:boundfield datafield="CustomerID" readonly="true" headertext="Customer ID"/>
      <asp:boundfield datafield="CompanyName" readonly="true" headertext="Customer Name"/>
      <asp:boundfield datafield="Address" headertext="Address"/>
      <asp:boundfield datafield="City" headertext="City"/>
      <asp:boundfield datafield="PostalCode" headertext="ZIP Code"/>
    </columns>
</asp:gridview>

在这种情况下, CustomerID 公司名称是只读的,无法更改。可以修改地址城市 PostalCode

只需在您不希望别人编辑的列上将ReadOnly选项设置为true。在编辑模式下,用户可以编辑没有此设置或将ReadOnly设置为false的列。

答案 1 :(得分:3)

如果您使用SqlDataSource,那么您应该确保从SqlDataSource中的UpdateCommand中删除要更新的列,否则在更新字段时会出现问题

答案 2 :(得分:2)

您应该能够在DataGridViewCell上设置ReadOnly。

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.readonly.aspx

gridView.Rows[rowIndex][colName].ReadOnly = true;