关于遍历页面控件的问题

环境:net2003语言:vb一个页面中有一个容器pnlEval是个panel容器中动态生成各种控件问:如何遍历容器中的控件,及得到控件的值控件包括lable、textb... 环境:net2003 语言:vb
一个页面中有一个容器pnlEval 是个panel
容器中动态生成各种控件
问:如何遍历容器中的控件,及得到控件的值
控件包括lable、textbox、radiobuttonlist、CheckBoxList
我用
For Each c As System.Web.UI.Control In Me.pnlEval.Controls
得到的是空的,循环没有进去

For Each c As System.Web.UI.Control In Me.Controls
得到的是别的控件,都是我不想要的

谁能给个能用的代码?
付上代码片段:
''加载评估问题
Dim qTable As DataTable = devQ.getQuestions(pj_id, tem_id)
Dim i As Integer = 1
''问题编号
Dim bh As Integer = 1
''拼接生成页面的字符串
Dim tableStr As String = "<table id='Table2' style='WIDTH: 100%' cellSpacing='1' cellPadding='1' border='0'>"
For Each row As DataRow In qTable.Rows
''按类型加载问题
''0=填空 1=单选 2=多选
Select Case CInt(row("i_type"))
Case 0
tableStr = tableStr & "<tr><TD class='TableContent' height='30' width='23%' style='HEIGHT: 30px'>" & bh & ":<asp:label id='lbl_" & CStr(row("item_id")) & "' runat='server' Width='70%' text='" & CStr(row("item_name")) & "'></asp:label></TD></tr>"
tableStr = tableStr & "<tr><TD class='TableData' noWrap width='35%'><asp:textbox id='txt_" & row("item_id") & "' runat='server' Width='50%' CssClass='SmallInput' TextMode='MultiLine' Rows='3'></asp:textbox></TD></tr>"
Case 1
tableStr = tableStr & "<tr><TD class='TableContent' height='30' width='23%' style='HEIGHT: 30px'>" & bh & ":<asp:label id='lbl_" & CStr(row("item_id")) & "' runat='server' Width='70%' text='" & CStr(row("item_name")) & "'></asp:label></TD></tr>"
tableStr = tableStr & "<tr><TD class='TableData' noWrap align='left' width='35%'><asp:radiobuttonlist id='rbt_" & row("item_id") & "' runat='server' Width='50%' RepeatLayout='Flow' RepeatDirection='Horizontal'>"
''加载选择题选项
Dim aTable As DataTable = devQ.readAnswer(CStr(row("item_id")))
不怎么懂哎。。。
能给个例子吗
展开
 我来答
aino77
2010-02-20 · TA获得超过920个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:286万
展开全部
看代码,好像是想通过字符串tableStr来生成页面.
不能通过这种方式将Label、TextBox、Radiobuttonlist、CheckBoxList等和所有的服务器控件加进去.对于IDE来说,这些控件是一个对象.编译好后生成相应的Html代码再由浏览器解析的.
这样的话,很明显,像这样的代码
"<tr><TD class='TableContent' height='30' width='23%' style='HEIGHT: 30px'>" & bh & ":<asp:label id='lbl_" & CStr(row("item_id")) & "' runat='server' Width='70%' text='" & CStr(row("item_name")) & "'></asp:label></TD></tr>"
浏览器肯定是不认识 asp:label 这样的标签,IDE编译时也找不到这个label对应的对象(谈不上编译,这样子,编译时IDE根本就不会把asp:label当回事).服务器控件添加到页面里,是不可行的,只能将里面的服务器控件换成相应的Html控件,然后再给控件添加客户端事件,用javascript来处理你要做的操作.
suhude410
2010-02-21 · 超过33用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:83.9万
展开全部
在后台添加的字符串生成页面,代码访问不到里面的控件

可以考虑通过参数来实现行的显示和隐藏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式