Benutzer mit den meisten Antworten
Problem mit Selektion ListView und Aktivierung Radiobutton

Frage
-
Hallo,
ich möchte in meinem Datenliste (Listview-Control) einen Datensatz über einen Klick auf einen Radiobutton selektieren. Dabei soll auch der geklickte Radiobutton aktiv (checked) gesetzt bleiben und der Datensatz (ListviewItem) mittels "SelectedItemTemplate" markiert werden.
Listview-Aufbau:
Radiobutton 1 | Überschift 1
Radiobutton 2 | Überschift 2
Radiobutton 3 | Überschift 3ListView-Control:
<asp:ListView ID="ListViewNews" runat="server" DataKeyNames="news_id" OnPagePropertiesChanging="ListViewNews_OnPagePropertiesChanging"> .... <ItemTemplate> <tr> <td class="tableitemfirst"> <asp:RadioButton ID="NewsId" AutoPostBack="True" OnCheckedChanged="Testfuntion" GroupName="NewsId" value='<%# Eval("news_id") %>' runat="server" /> </td> <td class="tableitemfirst"> <asp:Label Text='<%# Eval("headline") %>' runat="server" /> </td> </tr> </ItemTemplate> <SelectedItemTemplate> <tr> <td class="tableitem_activ"> <asp:RadioButton ID="NewsId" AutoPostBack="True" OnCheckedChanged="Testfuntion" GroupName="NewsId" value='<%# Eval("news_id") %>' runat="server" /> </td> <td class="tableitem_activ"> <asp:Label Text='<%# Eval("headline") %>' runat="server" /> </td> </tr> </SelectedItemTemplate>
Code Behind:
private void BindDataSource() { // Zugriff auf Newsdatenbank string connStrgNews = ConfigurationManager.ConnectionStrings["connStrgNews"].ConnectionString; SqlConnection oConnNews = new SqlConnection(connStrgNews); string spName = "sp_newsdb_all"; try { DataSet oDataSet = new DataSet(); SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter(spName, oConnNews); oSqlDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure; oSqlDataAdapter.Fill(oDataSet); ListViewNews.DataSource = oDataSet; ListViewNews.DataBind(); oConnNews = null; } catch (SqlException ex) { Response.Write(ex); throw; } } protected void Testfuntion(object sender, EventArgs e) { RadioButton oRadioButtonSender = (RadioButton)sender; string sRadioButtonSenderID = oRadioButtonSender.ID; string sRadioButtonSenderClientID = oRadioButtonSender.ClientID; int iItem = 0; foreach (ListViewItem oListeViewItem in ListViewNews.Items) { RadioButton oRadioButtonListView = (RadioButton)oListeViewItem.FindControl(sRadioButtonSenderID); if (oRadioButtonSender.Equals(oRadioButtonListView)) { oRadioButtonListView.Checked = true; //oRadioButtonListView.Attributes["checked"] = "checked"; ListViewNews.SelectedIndex = iItem; } else { oRadioButtonListView.Checked = false; } iItem = iItem + 1; } BindDataSource(); }
Funktioniert soweit schon sehr gut aber leider ist noch ein kleiner Fehler drin. Der Radiobutton wird trotz aktiv setzen nicht als checked (aktiv) angezeigt. Vermutlich durch das binden der Datasouce (BindDataSource). Wenn ich das jedoch weg lasse wird die Selektion immer erst nach dem nächsten folgenden Klick gesetzt.
Kann mir bitte jemand einen Tipp geben was ich falsch mache?
Gruß Dani
Antworten
-
Damit's auch noch in dem Forum hier steht ;)
Beim SelectedItemTemplate beim RadioButton Checked="true" setzen.
Beste Grüße- Als Antwort vorgeschlagen Kay GizaMicrosoft employee Montag, 20. Juli 2009 05:18
- Als Antwort markiert Robert BreitenhoferModerator Montag, 27. Juli 2009 10:41
Alle Antworten
-
Damit's auch noch in dem Forum hier steht ;)
Beim SelectedItemTemplate beim RadioButton Checked="true" setzen.
Beste Grüße- Als Antwort vorgeschlagen Kay GizaMicrosoft employee Montag, 20. Juli 2009 05:18
- Als Antwort markiert Robert BreitenhoferModerator Montag, 27. Juli 2009 10:41