Avatar billede hilton2305 Nybegynder
23. september 2006 - 22:53 Der er 1 kommentar

Læse værdier fra dynamisk tilføjet control

Jeg tilføjer er række kontroller (radiobuttonlists) dynamisk, og vil gerne finde disse kontroller igen så jeg kan aflæse værdierne, men det fungere ikke rigtigt med FindControl, er der en der kan hjælpe??

Koden er lavet i ASP.NET 2.0, C# og ser ud som føngende:


App_Code/CTRL.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class CTRL:Control,INamingContainer
{
    public CTRL(){}

    protected override void CreateChildControls()
    {
        base.CreateChildControls();
        for (int i = 0; i < 5; i++)
        {
            RadioButtonList rbl = new RadioButtonList();
            rbl.ID = i.ToString();
            for(int j = 0;j<3;j++)
            {
                ListItem item = new ListItem(i + "_" + j, i + "_" + j);
                rbl.Items.Add(item);
            }
            this.Controls.Add(rbl);
        }

        LinkButton btnClear = new LinkButton();
        btnClear.Text = "test";
        btnClear.Click += new EventHandler(btnClear_Click);
        this.Controls.Add(btnClear);
    }

    void btnClear_Click(object sender, EventArgs e)
    {
        Page.Response.Write(((RadioButtonList)Page.FindControl("1")).SelectedValue);
    }
}

Default.cs:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        CTRL c = new CTRL();
        this.Form.Controls.Add(c);
    }
}
Avatar billede snepnet Nybegynder
24. september 2006 - 21:47 #1
Bare stryg Page i din FindControl - så det bliver:
Page.Response.Write(((RadioButtonList)FindControl("1")).SelectedValue);

Og hvis det skal være lidt mere stuerent kan du lave sådan en her:
RadioButtonList list = FindControl("1") as RadioButtonList;
if(list != null)
{
  // tilgå listen
}

Og du kan jo altid iterere over dine kontroller:

foreach(Control c in this.Controls)
{
  RadioButtonList list = c as RadioButtonList;
  if(list != null)
  {
    // kontrollen er en RadioButtonList
  }
}

Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester