我有一個行選擇鏈接在asp.net 2.0數據綁定的GridView。當選中一行時,我想以編程方式在所選行下添加一個表格行,以嵌套另一個網格等。如何以編程方式在GridView中插入一行?
我研究這個客戶端與一篇文章,我認爲我的谷歌福是不是今晚強。有什麼建議麼?
編輯:其實我有一個工作解決方案,但Visual Studio中莫名其妙地被螺帽固定起來;關閉並重新打開VS和重建一切固定我的解決辦法是貼在下面的問題;-)
,請告訴我如何使它更好,如果可能的。謝謝!
我有一個行選擇鏈接在asp.net 2.0數據綁定的GridView。當選中一行時,我想以編程方式在所選行下添加一個表格行,以嵌套另一個網格等。如何以編程方式在GridView中插入一行?
我研究這個客戶端與一篇文章,我認爲我的谷歌福是不是今晚強。有什麼建議麼?
編輯:其實我有一個工作解決方案,但Visual Studio中莫名其妙地被螺帽固定起來;關閉並重新打開VS和重建一切固定我的解決辦法是貼在下面的問題;-)
,請告訴我如何使它更好,如果可能的。謝謝!
我想我想通了。這是一個似乎可行的解決方案。它可以改進使用用戶控件,但這是它的要點:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow &&
(e.Row.RowState & DataControlRowState.Selected) > 0)
{
Table tbl = (Table)e.Row.Parent;
GridViewRow tr = new GridViewRow(e.Row.RowIndex + 1, -1,
DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
TableCell tc = new TableCell();
tc.ColumnSpan = GridView1.Columns.Count;
tc.Controls.Add(
makeChildGrid(Convert.ToInt32(
((DataRowView)e.Row.DataItem)["ROW_ID_FIELD"])));
tr.Cells.Add(tc);
tbl.Rows.Add(tr);
}
}
protected GridView makeChildGrid(int id)
{
GridView gv = new GridView();
SqlDataSource sqlds = new SqlDataSource();
sqlds.DataSourceMode = SqlDataSourceMode.DataSet;
sqlds.ConnectionString = SqlDataSource1.ConnectionString;
sqlds.SelectCommand = "SELECT * from MY_TABLE_NAME " +
"WHERE KEY_FIELD = " + id.ToString();
DataView dv = (DataView)sqlds.Select(DataSourceSelectArguments.Empty);
gv.DataSource = dv;
gv.DataBind(); //not sure this is necessary...?
return gv;
}
謝謝您分享此代碼。我試圖做同樣的事情(創建嵌套的gridview),但實際上,你不必自己創建gridview。相反,您可以將控件包裝在標籤中。 我在這裏看到一個例子http://www.codeproject.com/KB/aspnet/EditNestedGridView.aspx?msg=3089755#xx3089755xx
你會發現開發人員只是通過將第二個gridview控件封裝在標籤中就嵌套了gv控制。
如果你能做到什麼,他是通過代碼做,那就更effecient。你不需要顯示所有選擇的領域!另外,你可以在視覺上將一些控件添加到你的子網格視圖中。
我已將您的代碼轉換爲vb並完美工作。
謝謝