2011-03-10 9 views
3

ASP.net 3.5 페이지에 두 개의 GridView가 있습니다. 첫 번째 GridView의 필드 중 하나로 HyperLink 필드가 있습니다. 나는 방법 showAllRecords에 (하이퍼 링크에서 값) 나는이 작업을 수행하려면 어떻게ASP.net의 부모 자식 Gridview

을 일부 값을 전달하여 2 그리드를 표시 호출 할 필요가이 하이퍼 링크의 클릭에

?

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

및 GridView1의 RowCommand에서

감사

답변

4

당신은 GridView1이 같은 TemplateField (차의 GridView)을 시도 할 수 있습니다, 당신은 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의 이벤트 선택 (데이터 바인딩에 사용한다고 가정)을 처리하고이 값을 전달함으로써