Brauchen Sie Hilfe, um dies zu lösen.asp.net gridview Kontrollkästchen Auswahl
Ich habe eine Gridview und innerhalb der Gridview habe ich ein Kontrollkästchen und nach dem Klicken auf das Kontrollkästchen, ich mache ein Postback-Ereignis und versuchen, diese bestimmte Zeile nur auf der Datenbank zu aktualisieren.
Dies ist meine gridview checkbox code. siehe OnCheckedChanged.
<asp:TemplateField HeaderText="Sample">
<ItemTemplate>
<asp:CheckBox runat="server"
ID="chkSample"
Checked='<%# Bind("Sample") %>'
OnCheckedChanged="UpdateSupplyLed"
AutoPostBack="True">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
Code:
protected void UpdateSupplyLed(object sender, EventArgs e)
{
foreach (GridViewRow di in SamplingGridView.Rows)
{
CheckBox chkBx = (CheckBox)di.FindControl("chkSample");
if (chkBx != null && chkBx.Checked)
{
//update database logic here.
}
}
}
Der obige Code funktioniert gut, aber es wird immer mir alle Kontrollkästchen, die irresepective des einen geprüft werden, die ich gerade überprüft. Ich will nicht alle.
Wie kann ich den einzigen Zeilenwert erhalten, der gerade geprüft wurde? Einige der Zeilen wurden möglicherweise bereits überprüft, da der Status für diese Datensätze wahr ist und ich diese Datensätze nicht aktualisieren möchte.
Ich denke, ich habe meine Frage richtig gemacht!
Update: Die Antwort lautet:
protected void UpdateSupplyLed(object sender, EventArgs e)
{
CheckBox chkSampleStatus = sender as CheckBox;
bool sample = chkSampleStatus.Checked;
GridViewRow row = chkSampleStatus.NamingContainer as GridViewRow;
TextBox txtId = row.FindControl("Id") as TextBox;
int id = Int32.Parse(txtId.Text);
}
Dank für Ihre Antwort danken. Aber ich brauche ein paar andere Werte aus derselben Zeile. Wie kann ich also die Zeilen-ID dieser bestimmten Gridview-Zeile erhalten? damit ich von der Aufzeichnung erfahren kann. – Supremestar
Dann empfehle ich, die Checkbox OnCheckChanged nicht zu binden, stattdessen die GridViews OnRowCommand, die Zeile wird in der GridVieweCommandEventArgs –
HollyStyles, Ich habe kein Auswahlbefehlsfeld in der Gridview so Gridview Zeile Befehl wird nicht ausgelöst. Was soll ich mit meinem Freund machen? Bitte helfen. – Supremestar