(论坛答疑点滴)怎么给Table动态添加控件并且得到控件的值?
每按一次Button1,在表格Table1中添加一行(行中有2列,一列是文本框,一列是下拉框),并且当按钮第一次按下时再添加一个按钮,点击这个动态添加的按钮,输出表格中所有的控件的值。
前台:
<asp:Table id="Table1" runat="server"></asp:Table>
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder><BR><BR>
<asp:Button id="Button1" runat="server" Text="添加一行"></asp:Button>
</form>
放置一个Table用来动态添加控件,放置一个PlaceHolder用来动态添加按钮,按下这个按钮得到表中控件的值,按下Button1按钮一次就添加一行。
后台:
Button1按钮的事件:
{
AddTextBoxs();
if(ViewState["Count"]==null)AddButton();
ViewState["Count"]=Convert.ToInt16(ViewState["Count"])+1;
}
两个方法:一个用来动态添加表格中的行,一个用来动态添加按钮(按钮不是按下Button1添加一次的,所以加上if(ViewState["Count"]==null)表示只有第一次加载按下按钮的时候才添加)
{
TableRow tr=new TableRow();
TableCell tc1=new TableCell();
TextBox t=new TextBox();
t.ID="tb"+Table1.Rows.Count;
tc1.Controls.Add(t);
TableCell tc2=new TableCell();
DropDownList dpl=new DropDownList();
dpl.ID="dpl"+Table1.Rows.Count;
for(int i=0;i<10;i++)dpl.Items.Add(i.ToString());
tc2.Controls.Add(dpl);
tr.Cells.Add(tc1);
tr.Cells.Add(tc2);
Table1.Rows.Add(tr);
}
private void AddButton()
{
Button b=new Button();
b.ID="btn";
b.Text="按钮";
b.Click += new System.EventHandler(btn_Click);
PlaceHolder1.Controls.Add(b);
}
最后是那个动态添加的按钮的事件:
{
for(int i=0;i<Table1.Rows.Count;i++)
{
Response.Write(((TextBox)Table1.Rows[i].FindControl("tb"+i)).Text+((DropDownList)Table1.Rows[i].FindControl("dpl"+i)).SelectedValue+"<br>");
}
}
其实动态添加的控件不复杂,只需要注意一点:动态添加的控件在PostBack的时候也需要再次添加,那么怎么知道是不是按下了按钮,或者说怎么知道已经按了几次按钮?就用一个标示位存放在ViewState中即可。
Page_Load事件:
{
if(ViewState["Count"]!=null)
{
for(int i=0;i<Convert.ToInt16(ViewState["Count"]);i++)
AddTextBoxs();
AddButton();
}
}
注意不要添加if(!IsPostBack){},相反你倒可以添加if(IsPostBack),因为页面第一次加载不可能已经按下按钮了。
转载于:https://www.cnblogs.com/lovecherry/archive/2005/04/16/138968.html
(论坛答疑点滴)怎么给Table动态添加控件并且得到控件的值?相关推荐
- (论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
正好有人问这个,代码非常简单,最基本的应用,直接贴代码 using System; namespace Test { /**//// <summary> /// Class ...
- 微信小程序之动态添加、删除指定view和获取input值
遇到的问题: 动态的添加指定的view内容..嗯..很简单..wx:for就搞定!! 动态添加的内容中有input,最终获取值的时候,要获取到所有input的值并且是一个数组. 动态删除指定的已经添加 ...
- JS给table动态添加行和列
效果图: input为动态添加 <botton onclick="AddTableCell()">添加一列</botton><table id=&qu ...
- 利用jquery给指定的table动态添加一行、删除一行
$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列 $("#mytable tr"). ...
- table动态添加、删除tr
在Web网页中动态为table添加或删除数据行是很常见的需求,实现这一效果有很多种方法,这里只介绍一种,不过在写这一解决方法的时候我感受到了熟练使用Jquery的重要性. Html代码: <st ...
- JS实现表格Table动态添加删除行
1.页面内容 <table style="border:1px ; width:100%; height:160px"> <THEAD> <TR> ...
- java为table添加一行_Js实现Table动态添加一行的小例子
1 2 3 4 5 6 7 申报部门 8 街镇 9 路段名称 10 起止路名 11 操作 12 13 14 15 16 17 三林城管署 18 港城城管署 19 惠南城管署 20 金桥城管署 21 陆 ...
- (论坛答疑点滴)为什么设置了DropDownList的AutoPostBack=True还是不能触发SelectedIndexChanged事件?...
有人问 (1)AutoPostBack="True" <asp:DropDownList id="DropDownList1" runat="s ...
- (论坛答疑点滴)怎么在datagrid翻页的时候确认?
虽然这个要求很奇怪,但是也是有典型性的,比如说我们datagrid的分页想用第x页来表示或者翻页的时候来提示,解决办法: private void DataGrid1_ItemCrea ...
- (论坛答疑点滴)DataGrid的EditCommandColumn如何使用图片作为按钮?
其实很简单 <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="<img src='upda ...
最新文章
- 六款值得推荐的 android 开源框架简介
- Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发送文字数据
- 【转】ArcGIS.Server.9.2.DotNet的ADF的Toolbar工作过程分析
- LeetCode - Easy - 28. Implement strStr()
- 基于浏览器父子窗口值传递
- 真相 | 14 岁编程神童谎言坐实,除了谴责我们该反思什么?
- python 图像压缩pca_在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
- VScode:创建用户代码片段
- Linux操作系统原理与应用(陈莉君)——学习笔记
- 计算机毕业论文答辩评语,论文答辩评语
- MySQL修改默认端口3306
- LCD12864资料汇总(HDG12864F详细说明及驱动源码)
- 管理信息系统可行性分析报告_软考复习笔记|项目管理过程与可行性分析及可行性分析报告编写...
- 如何将macOS应用程序打包为dmg文件
- C# - [实践] 电子词典
- Python学习笔记-数据类型(元组 tuple)
- 微信公众号网页授权并获取用户信息简要流程
- 创新之法,法无常法——小鹏汽车访学笔记
- 游戏制作之路(54)自制天空盒
- 5G在工业互联网领域的应用进展