CheckBoxen im GridView

09/06/2008 - 12:30 von WolfgangH | Report spam
Ich erstelle im Code ein GridView mit 2 Spalten (Spalte 2 mit Zahlenwerten)
Spalte 1 fülle ich im RowDataBound(..) einmalig mit Checkboxen.

if (e.Row.Cells[0].HasControls() == false) //also nur beim 1. Mal
{
CheckBox cb = new CheckBox();
cb.Checked = false;
e.Row.Cells[0].Controls.Add(cb);
}

Der User kann gewünschte Chechboxen anclicken

Ein Button("neu berechnen") auf der Seite soll
1. die Berechnung der angewàhlen Zeilen für die Werte in Spalte 2 auslösen
2. die Checkboxen zurücksetzen

protected void button_Click(..)
{
for(int irow=0; irow<gv.Rows.Count;irow++)
if(gv.Rows[irow].Cells[0].HasControls() == true) // <== ist nie wahr
//Wert neu berechnen für Spalte 2
}

Anscheinend ist die CheckBox nicht vorhanden, obwohl sie angezeigt wird.
- Was mache ich falsch?
- Wenn ich die CheckBox schon vorher erzeuge bei GridView erstellen, dann
habe ich das Problem, dass sie ReadOnly ist.

Besten Dank für eure Hilfe
Wolfgang
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
09/06/2008 - 12:47 | Warnen spam
Hallo Wolfgang,

"WolfgangH" schrieb:

Ich erstelle im Code ein GridView mit 2 Spalten (Spalte 2 mit Zahlenwerten)
Spalte 1 fà¼lle ich im RowDataBound(..) einmalig mit Checkboxen.



Warum?

<asp:GridView ...>
<Columns>
...
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="Mail"
runat="server"
... />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Damit hàttest Du doch das, was Du brauchst.

Anscheinend ist die CheckBox nicht vorhanden, obwohl sie angezeigt wird.
- Was mache ich falsch?



Ich denke mal, dass die CheckBox bei einem PostBack nicht wieder erzeugt
wird. Das musst du aber bei jedem dynamisch erzeugten Control machen. Bei
deklarativ erzeugten Controls erledigt das der im Hintergrund generierte
.NET Code, bei dynamisch erzeugten Controls (welche übrigens alle eine
eindeutige ID erhalten sollten) musst Du das manuell machen.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen