F: Event-Handler bei dynamisch erzeugten GridViews

26/10/2009 - 14:33 von B. Viehmann | Report spam
Hallo,

ich versuche verzweifelt für GridViews, die ich in einer Klasse
dynamisch erzeuge, einen Event-Handler festzulegen.

Ich erzeuge also dynamisch in einer Klasse, die Member von meiner
System.Web.UI.Page-Klasse ist, eine vorher unbekannte Anzahl von
GridViews.
Diese werden innerhalb der Klasse in einem Queue abgelegt und in der
Page_PreRender Methode über Controls.Add einem ContentPlaceHolder zugefügt.

Funktioniert wunderbar. fast :-)

Die Darstellung funktioniert aber leider schaffe ich es nicht, für diese
GridViews den Row-Command und den Row-Created Event-Hnadler festzulegen.
Dies sollen Methoden meiner Page-Klasse sein.

Im Augenblick mache ich folgendes:

Ich kopiere mir die Queue mit den GridViews in die Page und gehe lege
die EventHandler dann per Quellcode fest. Also like this:


grVwArr = new GridView[orderListTable.gridViewQueue.Count];
orderListTable.gridViewQueue.CopyTo(grVwArr, 0);
orderListTable = null;
for (int i = 0; i < grVwArr.Length; i++)
{
grVwArr[i].EnableViewState = true;
grVwArr[i].RowCommand += this.grVw_CommandDynGV;
grVwArr[i].RowCreated += this.grVw_rowCreated;
}

Die Eventhandler werden aber leider nicht aufegrufen. Weiss hier
vielleicht jemand wo mein Denkfehler ist? Ich drehe mich gerade etwas im
Kreis.

Danke und Gruß

Bernd
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
26/10/2009 - 14:42 | Warnen spam
Hallo B.,

"B. Viehmann" schrieb:

{
grVwArr[i].EnableViewState = true;
grVwArr[i].RowCommand += this.grVw_CommandDynGV;
grVwArr[i].RowCreated += this.grVw_rowCreated;
}



zum einen braucht jedes GridView seine eindeutige ID, zum anderen
muss es bei _jedem_ Request früh genug erzeugt (OnInit, spàt.
OnLoad, wobei es da nicht immer klappt) werden, so dass ASP.NET
überhaupt noch die Chance bekommt, die Postbackdaten dafür so
auszuwerten, dass die Events ausgelöst werden können.

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