有一點信息去,但因爲你的狀態,你創建嵌套網格動態,我認爲你所熟悉的RowDataBound事件。您也可以使用它來添加按鈕。在這個片段中我添加的按鈕到尾行,所以你必須能夠在網格嵌套該行:ShowFooter="true"
bool primary = false;
protected void NestedGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
//check if the current row is a datarow or a footer row
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (column == value)
{
primary = true;
}
}
else if (e.Row.RowType == DataControlRowType.Footer && primary == true)
{
//create 4 buttons in a loop
for (int i = 0; i < 4; i++)
{
//create a new button
Button button = new Button();
button.Text = "Button " + (i + 1);
//add a click handler to the button
button.Click += Button1_Click;
//add the button to the footer row
e.Row.Cells[i].Controls.Add(button);
}
}
}
因爲要動態添加控件到GridView,綁定對每個頁面負載發生,因此移動if (!Page.IsPostBack) { }
檢查之外的數據綁定。
謝謝。這是我要走的路線。但我不知道如何動態創建和添加頁腳行。簡單地做gvChild.ShowFooter = true不起作用。 – Massey
你不需要添加一個,它已經在那裏(雖然沒有使用動態創建的網格進行測試)。但是你不需要使用頁腳,如果你知道嵌套網格中的行數,你也可以使用'DataControlRowType.DataRow'並添加按鈕,如果它是最後一行的話。 – VDWWD
你說得對。現在我看到了頁腳。只有當DataRow中的字段值等於「Primary」時,我才必須將按鈕添加到頁腳。問題是,當我在if(e.RowTypeRowType == DataControlRowType.Footer)時,我無法訪問DataRow中的值。無論如何,如何做到這一點?謝謝 – Massey