我无法从代码隐藏中向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
的左侧。我该如何改变它的位置?
提前致谢。
答案 0 :(得分:1)
试试这个。使用insert
获取动态创建的列
devicesTable.Columns.Insert(0, buttonField)
答案 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中任何列的位置,我必须将字段绑定到我的数据源。