Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态更改Gridview中的DataField属性_C#_Asp.net_Gridview - Fatal编程技术网

C# 动态更改Gridview中的DataField属性

C# 动态更改Gridview中的DataField属性,c#,asp.net,gridview,C#,Asp.net,Gridview,我有这样一个GridView: <asp:GridView ID="GridViewAllPeopleEditMode" runat="server" AutoGenerateColumns="false" AutoGenerateEditButton="true" AllowPaging="true" PageSize="20" OnRowEditing="GridViewAllPeopleEditMode_RowEditing"

我有这样一个GridView:

<asp:GridView ID="GridViewAllPeopleEditMode" runat="server" 
    AutoGenerateColumns="false"
    AutoGenerateEditButton="true" 
    AllowPaging="true" 
    PageSize="20"
    OnRowEditing="GridViewAllPeopleEditMode_RowEditing" 
    OnRowCancelingEdit="GridViewAllPeopleEditMode_RowCancelingEdit" 
    OnRowUpdating="GridViewAllPeopleEditMode_RowUpdating"
    OnPageIndexChanging="GridViewAllPeopleEditMode_PageIndexChanging"> 
    <Columns>
        <asp:BoundField DataField="id" HeaderText="BusinessEntityID" ReadOnly="true"/>
        <asp:BoundField DataField="FirstName" HeaderText="FirstName"/>
        <asp:BoundField DataField="MiddleName" HeaderText="MiddleName"/>
        <asp:BoundField DataField="LastName" HeaderText="LastName"/>
    </Columns>
</asp:GridView>

我希望
页面\u load
在设置DataSource()/DataBind()之前设置DataField属性,而不是自己在.aspx页面中编写它们

是否可以这样做,或者我必须更改边界字段?
非常感谢

您可以在代码端这样使用

C#
BoundField field = (BoundField)this.GridViewAllPeopleEditMode.Columns[0];
field.DataField = "To";

VB
Dim field As BoundField = DirectCast(Me.GridViewAllPeopleEditMode.Columns(0), BoundField)
field.DataField = "To"

您可以在代码端这样使用

C#
BoundField field = (BoundField)this.GridViewAllPeopleEditMode.Columns[0];
field.DataField = "To";

VB
Dim field As BoundField = DirectCast(Me.GridViewAllPeopleEditMode.Columns(0), BoundField)
field.DataField = "To"

您不希望在绑定之前设置数据字段。它将覆盖您所做的任何更改。相反,您希望在绑定后更改它们。告诉用户您试图实现的目标。您不希望在绑定前设置数据字段。它将覆盖您所做的任何更改。相反,您希望在绑定后更改它们。告诉use你想要实现什么。谢谢你的回答,但是你确定它不会指向“编辑”列,因为我激活了AutoGenerateEditButton,哪个是在网格左侧的第一列上创建的?是的,它指向第一个被编辑的单元格,但动态更改数据字段只是一种逻辑,您可以根据需要使用它。它起作用了,谢谢,只需将C代码中的(0)括号改为[0]。谢谢您的回答,但您确定它不会指向“编辑”列,因为我激活了AutoGenerateEditButton,它是在网格左侧的第一列上创建的?是的,它是第一个被编辑的单元格,但动态更改数据字段只是一种逻辑,您可以根据您的需求使用它。它起作用了,谢谢,只需更改C代码中的(0)括号,使用[0]。