在GridView中更改动态创建的列的位置 - ASP.NET

时间:2014-02-18 10:36:19

标签: asp.net sql-server

我无法从代码隐藏中向GridView控件添加新列。 我使用DataTable作为GridView控件的数据源,并且在绑定之后,我添加到GridView的每一列都出现在控件的左侧。我需要改变它的位置。

请注意,我需要从代码隐藏中添加列,而不是从.aspx文件中添加列。

我在GridView文件中的.aspx定义:

<asp:GridView ID="devicesTable" runat="server" OnRowEditing="deviceEdit">
</asp:GridView>

这段代码,我尝试添加一列:

StoredProcedure connection = new StoredProcedure("usp_nsi_mpd_sel");

DataTable dataTable = connection.ExecReader();
ButtonField buttonField = new ButtonField();
buttonField.CommandName = "Select";
buttonField.ButtonType = ButtonType.Button;
buttonField.Text = "Edit";

devicesTable.DataSource = dataTable;
devicesTable.Columns.Add(buttonField);
devicesTable.DataBind();

这导致buttonField出现在GridView的左侧。我该如何改变它的位置?

提前致谢。

3 个答案:

答案 0 :(得分:1)

试试这个。使用insert获取动态创建的列

devicesTable.Columns.Insert(0, buttonField)

DataGridViewColumnCollection.Insert Method

答案 1 :(得分:1)

你可以使用类似的东西,

   private void AdjustColumnOrder()
{
    customersDataGridView.Columns["CustomerID"].Visible = false;
    customersDataGridView.Columns["ContactName"].DisplayIndex = 0;
    customersDataGridView.Columns["ContactTitle"].DisplayIndex = 1;
    customersDataGridView.Columns["City"].DisplayIndex = 2;
    customersDataGridView.Columns["Country"].DisplayIndex = 3;
    customersDataGridView.Columns["CompanyName"].DisplayIndex = 4;

}

答案 2 :(得分:0)

因此,要更改GridView中任何列的位置,我必须将字段绑定到我的数据源。

相关问题