DataBind() nach SelectedIndexChanging bei ListView aufrufen


Bis eben saß ich an einem sehr aufhaltenden Problem, welches wahrscheinlich zur Kategorie „Anfängerfehler“ gehört. Nunja Folgendes:

Möchte man bei einem ASP.NET ListView Control das Selektieren einzelner Items ermöglichen und bindet die DataSource manuell im CodeBehind, so muss die SelectedIndexChanging(object sender, ListViewSelectEventArgs e) Funktion implementiert werden.
Außerdem ist wie sonst auch das SelectedItemTemplate der ListView hinzuzufügen und im ItemTemplate zum Beispiel ein LinkButton mit folgendem Code:

<asp:LinkButton runat=“server“ ID=“SelectCategoryButton“ Text=“Select“ CommandName=“Select“ />

Die SelectedIndexChangingFunktion sollte dann so aussehen:

protected void listview1_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
{
this.listview1.SelectedIndex = e.NewSelectedIndex;
listview1.DataBind();
}

Vergisst man das zusätzliche „DataBind();“  wundert man sich, warum der erste Selektiervorgang erst beim folgenden Selektiervorgang ausgeführt wird und so weiter. Bis man diese Fehlerbeschreibung allerdings Google erklärt hat, kann einige Zeit vergehen 😉

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.selecteditemtemplate.aspx

,

  1. Bisher keine Kommentare.
(wird nicht veröffentlicht)