关于遍历页面控件的问题
环境: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")))
不怎么懂哎。。。
能给个例子吗 展开
一个页面中有一个容器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")))
不怎么懂哎。。。
能给个例子吗 展开
2个回答
展开全部
看代码,好像是想通过字符串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来处理你要做的操作.
不能通过这种方式将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来处理你要做的操作.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询