![](/img/trans.png)
[英]Nested GridView - How to trigger the Child GridView Button Click event
[英]How to Find the Inner Gridview in a nested GridView via external button click event?
我對嵌套的 Gridview 有疑問!
我有兩個帶有 ID 的 Girdviews - GridView1(Parent Gridview) 和 GV2(Child Gridview)
我有一個帶有 ID 的 Asp:Button - btnedit(Event = OnClick())
Qs: 如何在 btnedit_Onclick 事件中訪問 GV2?
我已附上代碼供您參考:
<form id="form1" runat="server"> <asp:Button runat="server" ID="btnedit" Text="Edit" OnClick="btnedit_Click" /> <asp:GridView runat="server" ID="Gridview1"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label runat="server" ID="Lable1"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:GridView runat="server" ID="GV2"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label runat="server" ID="Lable2"></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </form>
代碼背后:
protected void btnedit_Click(object sender, EventArgs e)
{
}
這可能會讓你開始......
GridView gvGV2 = e.Row.FindControl("GV2") as GridView;
gvGV2.DataSource = "..."; //Your DataSource
gvGV2.DataBind();
// or do something else.
好的,所以用戶想要對主 GV 的第 1 行進行操作,然后獲取子 GV 的第 1 行。
Gridviews 從 0 開始,所以不清楚,但讓我們獲取前兩行。
接下來? 我真的(但真的真的)建議你使用一個主列表視圖,然后嵌套一個子 GV。
如果你嵌套兩個 GV,你往往會得到這個:
說這個 GV,用“+”擴展子網格:
並擴展,你會得到這個:
因此,嵌套網格非常困難,因為“col span”很難設置。
但是,如果我構建一個主列表視圖(看起來與 GV 相同),然后再構建一個 gv,那么我會得到:
因此,上面使用了一個主列表視圖,因此為了擴展子記錄,我確實在列表視圖的子視圖中使用了 GV。
如果您願意,我可以發布上面的工作原理甚至標記。
但是,讓 go 帶有兩個嵌套的 GV - 它會使 UI 變得一團糟,但為了學習,它如何與上面嵌套的 LV + GV 或 GV + GV 一起工作是相同的。
因此,一些平面簡按鈕 - 在兩個網格之外,獲取主網格的第一行,然后是子網格的第一行。
這有效:
protected void Button1_Click(object sender, EventArgs e)
{
GridViewRow MainGvRow = GridView1.Rows[0];
GridView ChildGV = MainGvRow.FindControl("GridView2") as GridView;
GridViewRow ChildGVRow = ChildGV.Rows[0]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.