2011-05-04 70 views
2

我在我的项目中遇到了一个新问题;Asp.net,C#从面板中选择单选按钮和标签

我在我的页面上使用纯编程代码添加标签,单选按钮和2个图像按钮(因为标签和单选按钮的数量可能不同)上的面板。

我给每个单选按钮一个特殊的ID,所以我知道它属于哪个面板的内容。 现在最大的问题是我不知道如何从面板中获取东西。

假设面板中充满了标签和单选按钮(回答分数为0-10的问题和单选按钮的标签),并按照问题评分每个问题,我如何从面板中选择每个单选按钮以及ID以'5'结尾并获得它的价值?

面板的名称= pnlMain

我的代码:http://pastebin.com/gv8ycMY4

感谢 我希望你们能帮助我在这里,因为我真的被困在此我。

grtz, 尼科

+0

你用'runat =“server”'定义了你的控件吗? – 2011-05-04 10:58:36

+0

@ Neil-Knight。他以编程方式添加它们,所以这不适用。 – 2011-05-04 11:06:55

+0

也许有一个属性或某种我忘了添加时,我创建这些控件? – Nico 2011-05-04 13:57:48

回答

2

你可以通过面板上的控制itterate让每个单选按钮列表,然后通过itterate这些控件来获取单选按钮。

foreach (Control RBL in pnlMain.Controls) 
{ 
    if (RBL is RadioButtonList) 
    { 
     foreach (ListItem LI in (RBL as RadioButtonList).Items) 
     { 
      if (LI.Text.EndsWith("5") && LI.Selected) 
      { 
       // Do something with the radiobutton 
      } 
     } 
    } 
} 
+0

正是我在找的东西!谢谢vm! – Nico 2011-05-04 11:05:02

+0

@Nico。没有问题,一定要将我的答案标记为已接受的答案(点击旁边的勾号)。 – 2011-05-04 11:08:12

+0

你有没有机会知道如何选择所选的单选按钮? – Nico 2011-05-04 11:18:41

0

最后找到答案;

如果你想保持这些动态控件回传等后:

F.E.我,我用一个SelectedIndexChange来填补我的面板,动态控件。 我做了另一个名为laden()的方法,我写了我的代码来显示这些动态控件。 如果你想这些控件传递回传等只要把下面的代码和平到Page_Load方法:

if (Page.IsPostBack) { 
     laden(); 
    } 

至极意味着,如果你得到一个回传,它会回发后重新加载这些控件。 即使您将数据插入到选定的文本框或单选按钮中,它仍会与回发之前相同,也不会丢失数据。

享受。