2017-06-01 62 views
1

我想單擊按鈕複選框時,我得到行中的數據鍵值複選框被選中。任何人有想法如何獲取行列表中的列表視圖datakeyvalue檢查

<asp:ListView ID="rlv_CouponCode" runat="server" DataKeyNames="ID" DataSourceID="sds_CouponCode" ItemPlaceholderID="itemPlace"> 
<ItemTemplate> 
    <tr> 
     <td> 
      <asp:CheckBox ID="Checkbox1" runat="server" /> 
     </td> 
     <td> 
      <asp:TextBox Enabled="false" ID="Checkbox" runat="server" 
       Text='<%#Eval("Code") %>' /> 
     </td> 
     <td> 
      <asp:TextBox Enabled="false" ID="NameLabel" runat="server" 
       Text='<%#Eval("Discount") %>' /> 
     </td> 
    </tr> 
</ItemTemplate> 

這裏我後面的代碼爲Button1:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    foreach (ListViewItem item in rlv_CouponCode.Items) 
    { 
     CheckBox cb = (CheckBox)item.FindControl("Checkbox1"); 
     if (cb.Checked) 
     { 
      // 
     } 
    } 
} 

回答

0

你已經設置了DataKeyNames,所以你可以訪問這些。

for (int i = 0; i < rlv_CouponCode.Items.Count; i++) 
{ 
    CheckBox cb = (CheckBox)rlv_CouponCode.Items[i].FindControl("Checkbox1"); 

    if (cb.Checked) 
    { 
     int id = Convert.ToInt32(rlv_CouponCode.DataKeys[i].Values[0]);  
    } 
} 
+0

這是正確的,感謝您的幫助。 – HNIM600

0

給您的複選框中的標識是它顯示的記錄的編號。這樣每個複選框將有一個唯一的ID,您可以使用它來處理數據。例如,如果你的數據有CouponID然後:

<asp:CheckBox ID='<%#Eval("CouponID") %>' runat="server" /> 

在服務器端得到它使用ID,看看它是否已被選中。

+0

但如果設定ID複選框= CouponID,我怎麼能得到什麼複選框被選中,是因爲我使用'(複選框)item.FindControl(「Checkbox1」)' – HNIM600

相關問題