2010-12-09 9 views
0

Ich erstellte eine Gridview mit einem Kontrollkästchen vor einigen Spalten. Ich muss die Daten greifen, die der Benutzer angibt, und eine XML-Datei erstellen.ASP.NET Gridview - Checkbox - Wählen Sie mehrere Zeilen und Datensätze erhalten

Ich kann es nicht herausfinden. Kann mir bitte jemand in C# weiterhelfen?

Hier ist mein Code so weit.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataSourceID="ObjectDataSource1" AllowPaging="True" BackColor="#DEBA84" BorderColor="#DEBA84" 
BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" > 
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> 

<Columns>  

<asp:TemplateField> 
<HeaderStyle HorizontalAlign="left" /> 
<HeaderTemplate> 
<asp:CheckBox ID="chkSelectAll" ToolTip="Click here to select/deselect all rows" 
runat="server" /> 
</HeaderTemplate> 
<ItemTemplate> 
<asp:CheckBox ID="chkSelect" runat="server" /> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Service Point"> 
<ItemTemplate>     
<%# Eval("SERVICEPOINTID")%> 
</ItemTemplate> 
<HeaderStyle HorizontalAlign="Left" /> 
<ItemStyle HorizontalAlign="Left" /> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Start Date"> 
<ItemTemplate> 
<%# Eval("STARTTIME")%> 
</ItemTemplate>     
</asp:TemplateField> 

Danke,

Steve

+0

Können Sie den Code-Hinter, den Sie bisher versucht haben, posten? –

+0

Ich habe es nicht gepostet, weil ich sicher bin, dass es falsch ist und es nicht funktioniert. protected void GridView1_RowDataBound (object sender, GridViewRowEventArgs e) { // Check für eine Datenreihe if (e.Row.RowType == DataControlRowType.DataRow) { // Finden Sie das Kontrollkästchen Kontrolle von ID und legen Sie es. ((CheckBox) e.Row.FindControl ("chkSelect")). Überprüft = IsItemChecked (((DataRowView) e.Row.DataItem) [0]); } } – Steve

+0

Dieser Artikel könnte helfen - [Alle Checkboxen in einem GridView mit jQuery überprüfen] (http://www.4guysfromrolla.com/articles/120810-1.aspx) – Lareau

Antwort

1

Sie unter Code verwenden können Werte eins nach dem anderen für den überprüften Zeilen zu erhalten.

foreach (GridViewRow rowItem in GridView1.Rows) 
    { 
    var chk = (CheckBox)(rowItem.Cells[0].FindControl("chkSelectAll")); 

    // chk.checked will access the checkbox state on button click event 
    if (chk.Checked) 
    { 
     //get required values here 
    } 
    } 
0
ForEach(GridViewRow row in MyGridView.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) //avoid header/footer rows. 
    { 
    var myCheckBox = (CheckBox)row.FindControl("chkSelect"); 
    //myCheckBox.Checked tells you if it's checked or not, yay! 
    var myPrimaryKey = (GuidOrIntOrSomething)MyGridView.DataKeys[row.RowIndex].Value; 
    //now you have your Key and the checkbox for whether the user has checked it 
    //and you can do your update/insert/delete/whatever against the DB. 
    } 
} 

und Sie sollten wirklich mit dem quälenden Javascript umgehen benötigt, um alle Boxen direkt Alle mit Ihrem überprüfen zu überprüfen. Es ist sehr widersprüchlich und frustrierend für die Benutzer, ein Postback zu erhalten, wenn sie auf dieses klicken.

Verwandte Themen