Benutzerdefinierte IDs für Steuerelemente innerhalb vom Grid

21/04/2008 - 19:05 von Tseng S. | Report spam
Hallo,

hab ein kleines Problem mit einer GridView. Ich hab ein GridView, in welchem
Datensàtze aus einer Datenbank dargestellt werden. Etwas konkreter, handelt
es sich um Waren und Preise. Ich möchte nun eine Textbox in die Grid als
zusàtzliche Spalte einbauen, wo der Benutzer dann die anzahl der Waren die
er kaufen/errechnen möchte eintragen kann und darauf hin der Gesamtpreis
errechnet wird.

Die Textbox einzubinden war nich besonders schwer, dass Problem allerdings
ist, dass ich der TextBox keine dymanischen IDs zuweisen kann.
Standardmàssig generiert ASP.NET die IDs in etwa dem folgendem Format:

ctl00$PageContent$OreGridView$ctl00$Amount

Problem ist, dass ich nachdem absenden der Seite nicht wirklich zuordnen
kann zu welchem Element (im GridView) die Textbox gehört. Die ID der Textbox
ist übrigens "Amount" (was am letzten teil des von ASP.NET generierten
Namens erkennen kann).

Ich hàtte jetzt gern, dass die IDs wie folgt dargestellt wird:
ctl00$PageContent$OreGridView$ctl00$Amount$xx wobei das $xx für den primary
key des Datensatzes steht oder noch besser, nur "Amount$xx".

Oder gibt es eine andere Möglichkeit in die TextBox etwas dran zu bauen um
sie spàter eindeutig einem Datensatz (zB Primàrkey) zuzuordnen?

Tseng S.
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
21/04/2008 - 19:39 | Warnen spam
Hallo Tseng,

"Tseng S." schrieb:

Die Textbox einzubinden war nich besonders schwer, dass Problem allerdings ist, dass ich der TextBox keine dymanischen IDs
zuweisen kann.



Kannst Du schon, nur nicht, wenn Du die Textbox deklarativ einbindest. Erzeug
die Controls per Code oder lass ASP.NET seine Arbeit machen. Die Zuordnung
der gesendeten Werte zur Textbox sollte passen, wenn die Struktur der Seite
beim nachfolgenden Postback nicht geàndert wird.

Problem ist, dass ich nachdem absenden der Seite nicht wirklich zuordnen kann zu welchem Element (im GridView) die Textbox gehört.



Du kannst doch über die Eigenschaft Parent das übergeordnete Control ermitteln.
Je nach Position in deinem Code hast Du auch direkten Zugriff auf die aktuelle
Row bzw. das zugeordnete DataItem. Dort sollten alle Informationen drinstehen.

Ich hàtte jetzt gern, dass die IDs wie folgt dargestellt wird:
ctl00$PageContent$OreGridView$ctl00$Amount$xx wobei das $xx für den primary key des Datensatzes steht oder noch besser, nur
"Amount$xx".



Für letzteres musst Du noch "etwas" warten.

Oder gibt es eine andere Möglichkeit in die TextBox etwas dran zu bauen um sie spàter eindeutig einem Datensatz (zB Primàrkey)
zuzuordnen?



Ist doch alles schon vorhanden. Poste doch mal den relevanten Auszug aus deinem
Code. Evtl. sieht man ja dann, wo das Problem liegt.

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