後,我想了解一些有關數據表和GridView。我發現了一段代碼在互聯網上:列在GridView中被複制的DropDownList事件
protected void Page_Load(object sender, EventArgs e)
{
DataTable table = new DataTable();
grid1 = new GridView();
this.form1.Controls.Add(grid1);
grid1.AutoGenerateColumns = false;
table.Columns.Add("Dosage", typeof(int));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
// Here we add five DataRows.
table.Rows.Add(25, "Indocin", "David", DateTime.Now);
table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
for (int i = 0; i < table.Columns.Count; i++)
{
BoundField boundfield = new BoundField();
boundfield.DataField = table.Columns[i].ColumnName.ToString();
boundfield.HeaderText = table.Columns[i].ColumnName.ToString();
grid1.Columns.Add(boundfield);
}
grid1.DataSource = table;
grid1.DataBind();
}
結果:enter image description here
但如果我更改選定值從DropDownList中旁邊的標籤,這是一個結果:enter image description here
爲什麼有越來越更多專欄?有任何想法嗎?
編輯: 我沒有」寫的,我想從數據庫中放入數據的GridView。我將有一個SQL查詢,例如「SELECT * FROM TableName WHERE id =」+ DropDownList1.SelectedItem,所以我認爲它必須與每個Postback一起執行。
哦,我沒有寫'我想將數據從數據庫放入GridView。我將有一個SQL查詢,例如「SELECT * FROM TableName WHERE」+ DropDownList1.SelectedItem,所以我認爲它必須在每個Postback中執行。 – smile
在DropDownList的SelectedIndexChanged事件上做到這一點,但這並不意味着您應該一遍又一遍地創建列。使一個名爲「BuildGridView」的方法在Page_Load(IsPostback == true)上調用它,並使另一個名爲「PopulateGridView」的對象在SelectedIndexChanged事件中調用它。 – JCM