2015-04-28 74 views
1

我有幾個ASP gridviews,當我點擊一個索引值時,我保存了它們的關聯ID。我不想爲每個人創建多個事件處理程序,而是希望將它們全部綁定到一個事件處理程序中。 這裏是我的ASP代碼:如何綁定多個gridviews到單個事件處理程序

<asp:GridView ID="grvHighPriority" runat="server" OnSelectedIndexChanged="grv_SelectedIndexChanged" AutoGenerateSelectButton="true"/> 

<asp:GridView ID="grvMediumPriority" runat="server" OnSelectedIndexChanged="grv_SelectedIndexChanged" AutoGenerateSelectButton="true"/> 

而且我的C#代碼:

protected void grv_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    String groupedErrorID = ""; 
    GridViewRow row = grvHighPriority.SelectedRow; 
    groupedErrorID = row.Cells[1].Text.ToString(); 
    lblID.Text = groupedErrorID; //for testing purposes 
} 

此刻的事件處理程序只適用於在最高優先GridView的,但我想我所有的GridView的的結合相同的事件處理程序。這可能嗎? 在此先感謝!

編輯:

找到一個可行的解決方案由於@Enrique:

protected void grv_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    **GridView r = (GridView)sender;** 
    String groupedErrorID = ""; 
    **GridViewRow row = r.SelectedRow;** 
    groupedErrorID = row.Cells[1].Text.ToString(); 
    lblLogin.Text = groupedErrorID; //for testing purposes 
} 

回答

0

這應該工作

protected void grv_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      String groupedErrorID = ""; 
      GridViewRow row = (((YourControl)sender).Parent.Parent as GridViewRow);   
      groupedErrorID = row.Cells[1].Text.ToString(); 
      lblID.Text = groupedErrorID; //for testing purposes 
     } 

YourControl也能像一個LinkBut​​ton,按鈕等

+0

謝謝你,我找到了解決方案! – Petar