2011-03-10 56 views
3

我在ASP.net 3.5頁面中有兩個GridView。我將HyperLink字段作爲First GridView中的一個字段。ASP.net中的父子Gridview

在這個超鏈接我需要調用通過傳遞某些值的方法showAllRecords(從超鏈接值)

如何做到這一點顯示第二網格的點擊?

感謝

回答

4

你可以嘗試一個TemplateField像這樣GridView1(主要GridView控件)

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:LinkButton runat="server" ID="LinkButton1" CommandName="cmdName" CommandArgument='<%# Eval("IdColumn") %>' > LinkButton</asp:LinkButton> 
    </ItemTemplate> 
</asp:TemplateField> 

和GridView1的RowCommand,你可以得到CommandArgument和設置GridView2(子GridView控件)的數據源。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if(e.CommandName = "cmdName") 
    { 
     var arg = e.CommandArgument; 

     // use arg to filter GridView2's DataSource 
     GridView2.DataSource = FilteredDataSource; 
     GridView2.DataBind(); 
     // show GridView2 if it's hidden. 
    } 
} 
0

首先,你需要在第一網格處理SelectedIndexChanged事件,然後得到超鏈接的價值。超鏈接是DataKey嗎?如果是,則通過GridOne.SelectedDataKey.Values["key"]得到它,否則通過valuefromGridOne = GridOne.SelectedRow.Cells[num].Text得到實際的小區,其中number是小區編號。一旦你有了它,你可以通過處理objectDataSource的選擇事件(假設你用它來綁定數據)並傳遞這個值來將值傳遞給你的第二個網格,像這樣e.InputParameters["dataKey"] = valuefromGridOne;