注册 登录
编程论坛 ASP.NET技术论坛

[求助]关于动态生成table的问题

ice_beiyu 发布于 2007-11-10 09:27, 3000 次点击
在程序中动态生成一个table如下图
只有本站会员才能查看附件,请 登录



在这个上面修改textbox内的值,然后点击另一个按钮,将内容保存到数据库。

现在我不懂得是:
1、如何在一个单元格中添加多个label或者table控件。
2、在修改完后,在button事件里如何取得table上单元格中的textbox控件的值。


请各位帮帮忙,不胜感激,最好给出相关代码,在这里先谢谢啦!

[此贴子已经被作者于2007-11-10 9:27:48编辑过]

16 回复
#2
bygg2007-11-10 12:47

Label lb1 = new Label();
lb1.Text = ...
...
tc.Controls.Add(lb1); //tc 就是你想添加label的表格.

..TextBox的添加方法一样.
取值的话,因为是动态生成的,所以你有两种方法:
1、将一些控件进行隐藏。需要的时候让它们再显示。
2、动态添加,它们的名字按一定的规律取,比如都是以“txtAd_”为前缀。然后可以通过document.get...ByID()找出所有的动态添加的TextBox了,取值也就没问题了

#3
ice_beiyu2007-11-10 13:52
回复:(bygg)Label lb1 = new Label();lb1.Text = ....
一个单元格里面加上多个控件也是那样一个一个加?该怎么写?
能不能把取值的具体方法说一下,代码可不可以详细些?
#4
bygg2007-11-10 14:28
是一个一个加的
取值的方法很多,可以用javascript取,也可以再后台直接取,都一样,
不过我现在没有代码。我在网吧
#5
ice_beiyu2007-11-10 14:57
回复:(bygg)是一个一个加的取值的方法很多,可以用...

等一下给弄段代码看看好吗?这个地方真不知道怎么做了

ableRow tr8 = new TableRow();

TableCell tc81 = new TableCell();
tc81.Controls.Add(new LiteralControl("联系方式"));
tr8.Cells.Add(tc81);
TableCell tc82 = new TableCell();
tc82.Controls.Add(new LiteralControl("邮政编码:"));

TextBox tb81 = new TextBox(); TextBox tb82 = new TextBox(); TextBox tb83 = new TextBox();

tb81.Text = dv1.Tables[0].Rows[0]["yzbm"].ToString();
tc82.Controls.Add(tb81);

tc82.Controls.Add(new LiteralControl("详细地址:"));
tb82.Text = dv1.Tables[0].Rows[0]["xxdz"].ToString();
tc82.Controls.Add(tb82);

tc82.Controls.Add(new LiteralControl("联系电话:"));
tb83.Text = dv1.Tables[0].Rows[0]["lxdh"].ToString();
tc82.Controls.Add(tb83);


tr8.Cells.Add(tc82);

Table1.Rows.Add(tr8);



是这样写吗?

就是取值那一块还是不大明白

麻烦给段代码,谢谢!

#6
bygg2007-11-10 16:05
你动态加的TextBox都可以以 tb什么开始,这样取的话也行方便的,用一个循环就可以全部取到一个数组里面,。呵
明天或者后天给你代码。
#7
冰彩虹2007-11-10 19:22
你table里登陆者不用,显示的TextBox和Label还不一样嘛?
#8
ice_beiyu2007-11-12 08:21


对,不同的人先是不一样的内容,但是格式是一样的,前面有个选择。

彩虹,bygg 给段代码。

#9
yunj11052007-11-12 11:51
我也想问一下后台直接取值怎么取啊?
#10
bygg2007-11-12 12:44
foreach (string elem in Request.Form.AllKeys)
{
if (elem.Contains("tb1_")) //这里就取以"tb1_"开头的控件,所以动态添加时要注意名字
{
string cboValue = Request[elem]; //可以对控件中的值进行操作
}
}
#11
ice_beiyu2007-11-12 14:43
回复:(bygg) foreach (string elem in Request.For...
大体上明白了,但是实施起来还是不知道怎么下手。bygg版主,我给你发了一封邮件,请多帮忙!谢谢!

能不能告诉我您的QQ号码?我的QQ 363793142

#12
eastsnake2007-11-12 16:21
只有本站会员才能查看附件,请 登录

#13
bygg2007-11-12 18:11
动态生成时:TextBox都以 tb1_开头命名,
取值时:就按照我上面写的方法就可以把所有以 tb1_ 开头的TextBox里面的值全部取出来。
#14
yunj11052007-11-13 11:45
回复:(ice_beiyu)[求助]关于动态生成table的问题

建表头怎么建啊?

name1 name2
#15
bygg2007-11-14 09:45
表头也要动态吗?可以先建好。
也可以用创建其它行一样的方法
TableRow tr = new TableRow();
TableCell tc1 = new TableCell();
tc1....
tr.Cells.Add(tc1);
TableCell tc2 = new TableCell();
tc2....
tr.Cells.Add(tc2);
Tb.Rows.Add(tr); //Tb就是这个表
这不一样的吗?
#16
reandy2007-11-14 11:03
能不能把整个文件打包传上来给我们看看啊呵呵
#17
bygg2007-11-14 12:33
我也没有整体的代码,呵呵。都是需要的有时间就写点
1