我有一个asp.net c#应用程序。
我的gridview有一个包含2个字段的数据源。
用户无法编辑1个字段,但我需要另一个字段可编辑!
这可能吗?
答案 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;