2017-06-01 1 views
1

Ich möchte, wenn ich auf die Schaltfläche checkbox Ich bekomme Datenschlüssel Wert in Zeile haben Kontrollkästchen aktiviert ist. Wer noch IdeeWie bekomme ich datakeyvalue von Listview in Zeile überprüft

<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> 

Hier meinen Code hinter für 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) 
     { 
      // 
     } 
    } 
} 

Antwort

0

Sie haben DataKeyNames festgelegt, damit Sie auf diese zugreifen können.

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

Das ist richtig, für Ihre Hilfe danken. – HNIM600

0

Geben Sie Ihren Checkbox eine Kennung, die ID der Datensätze ist es angezeigt wird. Auf diese Weise erhält jedes Kontrollkästchen eine eindeutige ID, mit der Sie die Daten verarbeiten können. Zum Beispiel, wenn Ihre Daten haben CouponID dann:

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

Auf der Serverseite bekommen sie diese ID und sehen, ob es überprüft wurde.

+0

Aber wenn Set ID Checkbox = CouponID, wie ich Checkbox bekommen, was geprüft wird, weil ich 'verwenden (CheckBox) item.FindControl ("Checkbox1")' – HNIM600

Verwandte Themen