GridView: Link-Template-Field. Wie bekomme ich den Index heraus?

21/09/2007 - 14:31 von Adrian Stern | Report spam
Hallo

Ich habe Zwei GridView und möchte Zeilen von der einen in die andere
kopieren.

Die wichtige hat eine Zeile mit Links welche Hinzufügen heisen.
Die Idee ist, dass die Zeile bei welcher ich diesen Link drücke in die
andere GridView aufgenommen wird.

Nun bin ich mir nicht sicher ob ich da auch alles richtig gemacht habe.
Den Event zu diesen Links hinzugefügt habe ich mittels:
CommandName="lbHinzf_Click".

Ich bin mir nicht sicher ob das event wirklich durchlaufen wird.

protected void lbHinzf_Click(object sender, EventArgs e)
{

}

EventArgs bietet mir leider nicht die Möglichkeit auf den Index der
jeweiligen Zeile zu zu greiffen ... was muss ich anstelle von EventArgs
nutzen?

Gesehen habe ich das beim Delet-Link ... aber der ist ein Command-Field
und darum was anderes.

Also, ich muss wissen wie ich den Index der Jeweiligen Row bekomme.

mfg
Adrian Stern
 

Lesen sie die antworten

#1 Samaschke, Karsten
21/09/2007 - 15:17 | Warnen spam
Moinsens,

Ich habe Zwei GridView und möchte Zeilen von der einen in die andere
kopieren.
[...]
Nun bin ich mir nicht sicher ob ich da auch alles richtig gemacht habe.
Den Event zu diesen Links hinzugefügt habe ich mittels:
CommandName="lbHinzf_Click".



Als LinkButton?

Ich bin mir nicht sicher ob das event wirklich durchlaufen wird.

protected void lbHinzf_Click(object sender, EventArgs e)
{

}

EventArgs bietet mir leider nicht die Möglichkeit auf den Index der
jeweiligen Zeile zu zu greiffen ... was muss ich anstelle von EventArgs
nutzen?



Wenn es ein LinkButton ist, könntest Du beispielsweise sowas machen:

protected void Page_PreRender(object sender, EventArgs e)
{
// Resettet den index
_currentIndex = 0;

// Datenbindung
DataBind();
}

// Hàlt den aktuellen Zeilenindex
private int _currentIndex;

protected void lbHinzf_Click(object sender, EventArgs)
{
// Zeilindex auslesen
int index = int.Parse(((LinkButton) sender).CommandArgument);

// ...
}

// Gibt den aktuellen Index zurück und erhöht ihn
protected string GetCurrentIndex()
{
int result = _currentIndex++;
return result.ToString();
}

Im GridView könntest Du nun einen LinkButton einfügen und dessen
CommandArgument auf den aktuellen Index setzen:

<asp:LinkButton runat="server" CommandArgument="<%# GetCurrentIndex()
%>" ... />

Mit freundlichen Gruessen / Best regards

Karsten Samaschke
IT-Entwicklung, IT-Beratung, IT-Training
Web: http://www.ksamaschke.de
Blog: http://www.karsan.de
Lesen: http://www.xmldotnet.de

Ähnliche fragen