2011-03-15 45 views
0

我在gridview中有多個按鈕。我怎樣才能確定選擇了哪一行按鈕?我如何捕獲行索引?確定從網格視圖中選擇按鈕的行asp.net/c#

我用

protected void crtButton_Click(Object sender, EventArgs e) 
    {   
      string componentText; 
      GridViewRow row = GridView1.SelectedRow; 
      String componentName = row.Cells[1].text;    
    } 

我試圖生成gridview的.aspx文件按鈕,通過下面的代碼

  <asp:TemplateField HeaderText="Add to Cart"> 
       <ItemTemplate> <asp:Button ID="crtButton" runat="server" Text="Add to Cart" OnClick="crtButton_Click"/> 
       </ItemTemplate>     
     </asp:TemplateField> 

,但現在看來似乎沒有產生結果。誰能幫幫我嗎。

謝謝你在期待

回答

2

這裏是你如何能得到的點擊按鈕的行索引:

protected void crtButton_Click(Object sender, EventArgs e) 
{ 
    Button clickedButton = (Button)sender; 
    GridViewRow row = (GridViewRow)clickedButton.Parent.Parent; 
    int rowIndex = row.RowIndex; 
} 

然而,這還不是最大的方法,因爲你必須知道按鈕的水平。最好的方法是將OnCommand與CommandArgument一起使用。

<ItemTemplate> 
    <asp:Button ID="crtButton" runat="server" Text="Add to Cart" OnCommand="crtButton_Command" CommandArgument=<%# Eval("ItemID") %> /> 
</ItemTemplate> 

protected void crtButton_Command(Object sender, CommandEventArgs e) 
{ 
    int itemID = Convert.ToInt32(e.CommandArgument); 
} 
+0

數據綁定:「System.Data.DataRowView」不包含屬性名稱爲「項目ID 」。這是我在嘗試使用您的代碼時遇到的錯誤。難道我不得不在gridview列中添加itemid嗎? – 2011-03-16 08:33:37

+0

你是我的救世主。謝謝第一種方法 – 2011-03-16 09:05:51

+0

只需將ItemID替換爲您試圖通過添加到購物車方法的任何值的列/屬性名稱即可。 – 2011-03-16 13:07:45

0

,就可以把發送到一個按鈕,然後看看按鈕的屬性:

protected void crtButton_Click(Object sender, EventArgs e) 
{ 
    Button Clicked = sender as Button; 
相關問題