动态生成的表格如何获取该表格中控件的值??

ye_zhi_gen_bo_luo_mi 2008-09-17 08:45:29
先创建一个HtmlTable
然后根据需要动态生成多行,每行都有TextBox控件
现在是要求找到某行中的某个TextBox控件.
每个TextBox控件在动态生成时已经给它一个唯一的ID
问题是:通过findcontrol 方法找不到...
还有就是发现急!!!!!!!!!!!!!HtmlTable创建完提交服务器后所有的行清空了..请帮忙解决!!!!

...全文
198 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
放到Page_load 事件里就可以了.....
简单吧....
yurengang 2008-09-29
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
HtmlTable htmltable = new HtmlTable();

for (int i = 0; i < 10; i++)
{
HtmlTableRow row = new HtmlTableRow();

for (int j = 0; j < 2; j++)
{
HtmlTableCell cell = new HtmlTableCell();
HtmlInputText txt = new HtmlInputText();
txt.ID = txt.Value = "txt_" + i.ToString() + "_" + j.ToString();

cell.Controls.Add(txt);
row.Controls.Add(cell);
}
htmltable.Rows.Add(row);
}

this.Controls.Add(htmltable);
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(((HtmlInputText)this.FindControl("txt_4_1")).Value);
}
Ny-6000 2008-09-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ye_zhi_gen_bo_luo_mi 的回复:]
问题已经解决!!!!谢谢各位的建议.
[/Quote]

咋解决的。

希望共享一下哟。……_……
  • 打赏
  • 举报
回复
问题已经解决!!!!谢谢各位的建议.
lanlan85525 2008-09-23
  • 打赏
  • 举报
回复
你可以试一下request.form(“控件ID”)来取你动态生成的控件的值。
KeLeGu 2008-09-19
  • 打赏
  • 举报
回复
自已也在求助别人,都不容易
帮你顶!
  • 打赏
  • 举报
回复
补充一点,如果我把动态生成表格的这段代码放在Page_load里就在别的函数里可以用Findcontrol方法找到表格中的控件,若放在别的函数里就在生成表格和控件后所有的东西都清空啦.难道动态生成的表格还有周期么??那位大侠帮忙解决下!!!!!很急!!!!!!!!!!1
astromercy 2008-09-19
  • 打赏
  • 举报
回复
2楼的用C#来欺负VB.NET新手,BS...
xuxun 2008-09-19
  • 打赏
  • 举报
回复
BS的没怎么玩过,但好像应该搞清楚控件生存周期的问题
  • 打赏
  • 举报
回复
是asp.net的textbox控件.
代码如下:


'-------------------------根据条件画出表格---------------------------------------
dt = New DataTable
If Not loOleDb.Open(ConfigurationManager.AppSettings("DatabaseRF")) Then
SetMessage(loOleDb.Message, messageType.Failure)
Else
sqlstr = "select A.PROPERTY,A.MANDATORY_YN,B.TRANSLATEKEY,B.UnitDescription,a.DEFAULT_VALUE " & _
"from bok2_resrc_prop_define a,property_desc b " & _
"where a.property=b.PropertyType and b.status='Active' AND RESOURCE_TYPE='" & Me.strResourceType & "'"

loOleDb.FillDataTable(sqlstr, dt)
If Not loOleDb.FillDataTable(sqlstr, dt) Then
SetMessage(loOleDb.Message & "<br>" & sqlstr, messageType.Failure)
Else
End If
End If
'-------------------要画的表格行数-------------------------------------------------
For tbrow = 0 To dt.Rows.Count - 1

tr = New HtmlTableRow()
For lsInt = 0 To 3

Select Case lsInt
'-------------------画出表格的第一列-----------------------------------------------
Case 0
If ((dt.Rows(tbrow).Item(1).ToString).Equals("Y")) Then
tc = New HtmlTableCell()
lab = New Label
lab.Text = "*" & dt.Rows(tbrow).Item(0).ToString()
lab.ID = "lab" & dt.Rows(tbrow).Item(0).ToString()
tc.Controls.Add(lab)
tr.Cells.Add(tc)
Else
tc = New HtmlTableCell()
lab = New Label
lab.Text = dt.Rows(tbrow).Item(0).ToString()
lab.ID = "lab" & dt.Rows(tbrow).Item(0).ToString()
tc.Controls.Add(lab)
tr.Cells.Add(tc)
End If
'-------------------画出表格的第二列-----------------------------------------------
Case 1
If ((dt.Rows(tbrow).Item(2).ToString).Equals("BUILDING")) Then
tc = New HtmlTableCell()
ddlist = New DropDownList

If Not loOleDb.Open(ConfigurationManager.AppSettings("DatabaseRF")) Then
SetMessage(loOleDb.Message, messageType.Failure)
Else
sql = "select DISTINCT LOC_ID TextField" & _
",LOC_NAME ValueField" & _
" FROM B_BOK2_LOCATION"

If Not loOleDb.FillDataTable(sql, LODT) Then
SetMessage(loOleDb.Message & "<br>" & sql, messageType.Failure)
Else
ddlist.DataSource = LODT
ddlist.DataValueField = "TextField"
ddlist.DataTextField = "ValueField"
ddlist.DataBind()
End If
End If
tc.Controls.Add(ddlist)
ddlist.ID = "ddl" & dt.Rows(tbrow).Item(0).ToString()
tr.Cells.Add(tc)
ElseIf ((dt.Rows(tbrow).Item(2).ToString).Equals("YESNO")) Then
tc = New HtmlTableCell()
ddlist = New DropDownList
ddlist.Items.Add(New ListItem("YES", "1"))
ddlist.Items.Add(New ListItem("NO", "0"))
tc.Controls.Add(ddlist)
ddlist.ID = "ddl" & dt.Rows(tbrow).Item(0).ToString()
tr.Cells.Add(tc)
Else
tc = New HtmlTableCell()
txtBox = New TextBox
tc.Controls.Add(txtBox)
txtBox.ID = dt.Rows(tbrow).Item(0).ToString()
txtBox.Text = dt.Rows(tbrow).Item(4).ToString()
tr.Cells.Add(tc)
If ((dt.Rows(tbrow).Item(1).ToString).Equals("Y") AndAlso (dt.Rows (tbrow).Item(2).ToString).Equals("NONE")) Then
lsJS &= vbCrLf & "var txt" & txtBox.ClientID & "=document.getElementById(""" & txtBox.ClientID & """);"
lsJS &= vbCrLf & " if (txt" & txtBox.ClientID & ".value=="""")"
lsJS &= vbCrLf & " {"
lsJS &= vbCrLf & " txt" & txtBox.ClientID & ".focus();"
lsJS &= vbCrLf & " alert("" " & txtBox.ID & " Can't be Null!"");"
lsJS &= vbCrLf & " return(false);"
lsJS &= vbCrLf & "}"
End If
End If
'-------------------画出表格的第三列-----------------------------------------------
Case 2
If ((dt.Rows(tbrow).Item(2).ToString).Equals("NONE")) Then
tc = New HtmlTableCell()
lab = New Label
lab.Text = dt.Rows(tbrow).Item(3).ToString() & ";" & "Description:"
tc.Controls.Add(lab)
tr.Cells.Add(tc)
Else
tc = New HtmlTableCell()
lab = New Label
lab.Text = "Description:"
tc.Controls.Add(lab)
tr.Cells.Add(tc)
End If
'-------------------画出表格的第四列-----------------------------------------------
Case 3
tc = New HtmlTableCell()
txtBox2 = New TextBox
txtBox2.ID = " txt" & dt.Rows(tbrow).Item(0).ToString() & "Desc"
tc.Controls.Add(txtBox2)
tr.Cells.Add(tc)
End Select
Next
'tb1.Rows.Add(tr)
tb1.Controls.Add(tr)
'Dim lba As Label = tb1.Rows(tbrow).FindControl("lab" & dt.Rows(tbrow).Item(0))
Next
  • 打赏
  • 举报
回复
我是想单击新增按钮才动态生成的了,这样还要放在Page_load 事件中么?
ZengHD 2008-09-18
  • 打赏
  • 举报
回复
        protected void Page_Load(object sender, EventArgs e)
{
HtmlTable htmltable = new HtmlTable();

for (int i = 0; i < 10; i++)
{
HtmlTableRow row = new HtmlTableRow();

for (int j = 0; j < 2; j++)
{
HtmlTableCell cell = new HtmlTableCell();
HtmlInputText txt = new HtmlInputText();
txt.ID = txt.Value = "txt_" + i.ToString() + "_" + j.ToString();

cell.Controls.Add(txt);
row.Controls.Add(cell);
}
htmltable.Rows.Add(row);
}

this.Controls.Add(htmltable);
}

protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(((HtmlInputText)this.FindControl("txt_4_1")).Value);
}
wjq 2008-09-17
  • 打赏
  • 举报
回复
你动态生成的TextBox是htmlinput控件还是asp.net的textbox控件?
为什么不用GridView之类的通过模板列实现?

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧