Announcement

Collapse
No announcement yet.

Dynamische Radio-Buttons und deren Ansteuerung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dynamische Radio-Buttons und deren Ansteuerung

    Hallo Leute,

    ich bin neue in ASP.net. Ich bin gerade an einem projekt und möchte nun folgendes realislieren:

    - beim aufruf der startseite wird ein verzeichnis auf dem server ausgelesen. in diesem verzeichnis befinden sich diverse bilder. danach muss für jedes bild ein radio-button und ein link zu diesem bild erstellt werden. falls keine bilder im verzeichnis sind, werden keine radio buttons erstellt.
    wenn man ein radio-button drückt, muss eine funktion aufgerufen werden, die in einer variable speichert, welcher radio-button gedrückt wurde. es darf immer nur ein radio-button aktiviert werden.

    wie man radio button erstellt, weiss ich. doch wie man diese dynamisch erstellt und ansteuert, da bin ich überfragt. bis jetzt hat nichts funktioniert, wie ich es brauche.

    ich danke euch allen im voraus für ihre vorschläge

  • #2
    Wir erstellen hier keine kompletten Lösungen. Was genau schaffst Du denn nicht? Erstellt werden die ganzen Links und Buttons im PageLoad. Aber was genau schaffst Du denn nicht?

    Comment


    • #3
      Originally posted by fanderlf View Post
      Wir erstellen hier keine kompletten Lösungen. Was genau schaffst Du denn nicht? Erstellt werden die ganzen Links und Buttons im PageLoad. Aber was genau schaffst Du denn nicht?
      morgen fanderlf,

      also mein problem ist, dass die radiobuttons zwar generiert werden, jedoch haben sie dann verschiedene "groupname". sie müssen jedoch gleiche "groupname" haben, damit ich das typische radiobutton verhalten erhalte und beim checked-änderung soll eine funktion aufgerufen werden....

      die funktion CreateDataSource() habe ich aus einem beispiel übernommen und etwas umgebaut. und bitte habe verständnis, ich bin neue in ASP...


      hier ist mein code:

      Code:
          protected void Page_Load() {
      ......
                 
                  Repeater1.DataSource = CreateDataSource();
                  Repeater1.DataBind();
      .....
      
              }
          }
      
          ICollection CreateDataSource()
          {
              string[] tmp = (string[])Session["drawing"];
              int count = tmp.Length;
              string[] namen = new string[count];
      
              // Create sample data for the DataList control.
              DataTable dt = new DataTable();
              DataRow dr;
      
              // Define the columns of the table.
              dt.Columns.Add(new DataColumn("count", typeof(int)));
              dt.Columns.Add(new DataColumn("name", typeof(string)));
              dt.Columns.Add(new DataColumn("fpath", typeof(string)));
              dt.Columns.Add(new DataColumn("namen", typeof(string)));
      
              // Populate the table with sample values.
              for (int i = 0; i < count; i++)
              {
                  dr = dt.NewRow();
      
                  dr[0] = i;
                  dr[1] = System.IO.Path.GetFileName(tmp[i]);
                  dr[2] = tmp[i];
                  //dr[3] = "Image" + i.ToString() + ".jpg";
                  namen[i] = i.ToString();
      
                  dt.Rows.Add(dr);
              }
      
              DataView dv = new DataView(dt);
              return dv;
          }
      ....
      <html>
      .......
      <asp:Repeater  ID="Repeater1" runat="server">
                                       <ItemTemplate>      
                                          <tr class="cycle-1">
                                              <td >
                                                  <%# DataBinder.Eval(Container.DataItem, "count") %>
                                              </td>
                                              <td >
                                                  <asp:RadioButton GroupName="radiobutton"  AutoPostBack = 'false' ID='rbut' OnCheckedChanged='onChangedState' Text='test' runat="server" />
      
                                              </td>
                                              <td>
                                                  <div id="geoview" runat="server">
                                                      <asp:HyperLink Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "fpath") %>'  runat="server"/>
                                                      
                                                      <%--<a class="" href='<%# DataBinder.Eval(Container.DataItem, "fpath") %>'><%# DataBinder.Eval(Container.DataItem, "name") %></a>--%>
                                                  </div>
                                              </td>
                                          </tr>
                                      </ItemTemplate>
                                  </asp:Repeater>

      Comment


      • #4
        Hallo,

        du machst es dir hier glaube ich selbst zu schwer. Für deinen Zweck gibt es das fertige Control RadioButtonList, das genau die Möglichkeiten bietet.
        Du deklarierst es in der ASPX-Seite und kannst dann im Code die RadioButtons als ListItems ganz einfach dazufügen:
        Code:
        rblRadioButtonList.Items.Add(new ListItem("Beschriftung", "intValue"));
        Der erste Parameter ist die Beschriftung des jeweiligen Buttons und der zweite das SelectedValue der RadioButtonListe, wenn dieser Button gedrückt wird.
        Die Buttons der Liste liegen automatisch in einer Group und es kann nur einer selektiert sein.

        Gruß, Bruno

        Comment

        Working...
        X