wie man Zeilen-Werte, wenn die checkbox aktiviert ist im gridview
bevor ich gefragt habe ich einige überprüfen, um sicherzustellen, dass dies nicht ein Duplikat zu sein und Möglichkeiten zu bekommen, die Zeile die Werte aus einer Zeile hat eine checkbox in der Vorlage Feld...aber ich kann nicht scheinen, um es funktioniert...bisher habe ich versucht
protected void Page_Load(object sender, EventArgs e)
{
Entities NW = new Entities();
var customers =
from c in NW.Customers
where (c.ContactName.StartsWith("Ma") || c.ContactName.StartsWith("An")
|| c.ContactName.StartsWith("T")
|| c.ContactName.StartsWith("V")
)
orderby c.ContactName ascending
select new
{
c.CustomerID,
c.ContactName,
c.CompanyName,
c.City
};
gv1.DataSource = customers.ToList();
gv1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in gv1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[0].FindControl("CB") as CheckBox);
if (chkRow.Checked)
{
Label1.Text = row.Cells[2].Text;
}
}
}
}
Ich trat durch die Schaltfläche click-Ereignis und wenn es dann zu
wenn (chkRow.Geprüft)
zeigt seine als null und überspringt..
mein markup ist
<asp:GridView ID="gv1" runat="server">
<HeaderStyle BackColor="SkyBlue" />
<AlternatingRowStyle BackColor="Yellow" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CB" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
wenn ich mir die Quelle, nach der ich laufen, die Checkboxen sind alle anders benannt als das, was ich gab Ihnen die ID von "CB", anbei das Bild von der Quelle, wenn Ihre Ausführung
Ich bin nicht sicher, was ich falsch mache mit diesem
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre
GridView
sollten mehr Spalten, weil Sie verweisenCell[2]
im code.Könnten Sie versuchen, zu verwenden
row
Objekt zu suchen für Ihre Kontrolle:Text
wird nur überschrieben, mehrmals in der Schleife und Sie sehen den aktuellen Wert?Page.IsPostback
in IhremPage_Load()
event-handler, für die Sie zurücksetzen Ihrer verbindlichen jedes mal, wenn Sie laden Sie die Seite, damit rendering alle Checkboxen auf false. Wenn ich also, es funktioniert auf meiner Seite (ich habe gerade kopiert den code in einem neuen ASP.NET app in meinem VS).