0

GridView에 표시되는 각 행에 대해 2 개의 "선택"버튼이 포함 된 GridView가 있습니다.GridView의 SelectedIndexChanged 이벤트 핸들러에서 클릭 한 버튼 찾기

SelectedIndexChanged 처리기를 사용하여 두 개의 단추 중 어떤 단추를 클릭했는지 확인하는 방법이 있는지 알고 싶습니다.

이 코딩은 우리가 가지고있는 버튼을 보여줍니다

<asp:UpdatePanel 
    ID="UpdatePanelParentsSummary" 
    runat="server" 
    UpdateMode="Conditional"> 

    <ContentTemplate> 
     <p>Parent Search: 
      <asp:TextBox 
       ID="TextBoxSearch" 
       runat="server" 
       Width="207px" 
       Text="ALL"> </asp:TextBox> 

      <asp:Button 
       ID="ButtonSearch" 
       runat="server" 
       Text="Search" /> 

      <asp:Button 
       ID="ButtonSearchAll" 
       runat="server" 
       Text="Show ALL Parents" /> 

      <br /> 
     </p> 

     <asp:GridView 
      ID="GridViewParentsSummary" 
      runat="server" 
      AllowPaging="True" 
      AllowSorting="True" 
      AutoGenerateColumns="False" 
      DataKeyNames="ID" 
      > 

      <Columns> 
       <asp:BoundField 
        DataField="ID" 
        HeaderText="ID" 
        SortExpression="ID" InsertVisible="False" ReadOnly="True" Visible="False" /> 

       <asp:BoundField 
        DataField="FatherName" 
        HeaderText="FatherName" 
        SortExpression="FatherName" /> 

       <asp:BoundField DataField="MotherName" HeaderText="MotherName" 
        SortExpression="MotherName" /> 

       <asp:ButtonField 
        ButtonType="Button" 
        CommandName="Select" 
        Text="Select Details" /> 

       <asp:ButtonField 
        ButtonType="Button" 
        CommandName="Select" 
        Text="New Person To Release Child" /> 
      </Columns> 
     </asp:GridView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

이는의 SelectedIndexChanged 처리기에서 코드입니다 :

Protected Sub GridViewParentsSummary_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GridViewParentsSummary.SelectedIndexChanged 

    IntParentsID = GridViewParentsSummary.DataKeys(GridViewParentsSummary.SelectedIndex).Value 

    Response.Redirect("AuthorizationForChildReleaseDetails.aspx") 
End Sub 

답변

2

아,이 문제에 대한 간단한 해결책이있다. 보낸 사람이 클릭 한 버튼입니다. 나는 그것이 낮은 수준의 이벤트를 마스킹되는 시점에서의 GridView에 의해 제기 된 사건이기 때문에 당신이의 GridView 이벤트 수준에서 소스를 구분할 수 있다고 생각하지 않습니다

ButtonField buttonClicked = sender as ButtonField; 
if (buttonClicked != null) { 
    String commandName = buttonClicked.CommandName; 

    if (commandName.equals("Command1") { 
     ... do something awesome ... 
    } else if (commandName.equals("Command2")) { 
     ... do something less awesome ... 
    } 
} 
+0

스위치를 트리거하는 데는 모든 속성을 사용할 수 있습니다. 가장 직관적 인 것으로 들렸 기 때문에 CommandName을 선택했습니다. –

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 그것을 내일 시험해보고 그것이 어떻게 작동하는지 알려줄 것이다. :-) –

+0

문제 없습니다. 이것은 우리가 우리 자신의 질문에 대한 답변을 기다릴 때하는 일입니다. –

0

: 그냥 뭔가를하려고합니다. 그러나 이벤트를 발생시키고 gridview 이벤트에서 사용하기 위해 어딘가에 설정하는 데 사용 된 단추를 식별하는 행 레벨 핸들러를 구현할 수 있습니다.

protected void GridView_RowCommand(object sender, CommandEventArgs e) 
{ 
    e.CommandArgument ....contains the argument name 
    .... 

} 
관련 문제