动态更改 Gridview 中的 DataField 属性

J_J*_*J_J 1 c# asp.net gridview

我有一个像这样的 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>
Run Code Online (Sandbox Code Playgroud)

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

是否可以这样做,或者我是否必须更改 BoundFields?非常感谢!

Pra*_*las 5

您可以在代码端像这样使用

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"
Run Code Online (Sandbox Code Playgroud)