ASP.NET动态生成控件及其事件的问题
前台代码:
<div>
<table ID="Tb_adv_search" runat="server">
<tr>
<td><asp:DropDownList ID="Ddl_adv_search1" width="40" runat="server"></asp:DropDownList></td>
<td><asp:DropDownList ID="Ddl_operator1" width="40" runat="server"></asp:DropDownList></td>
<td colspan="2"><asp:TextBox ID="TxtB1" width="100" runat="server"></asp:TextBox></td>
</tr>
</table>
<asp:Button ID="Btn_add_search" runat="server" Text="添加查询条件" OnClick="Btn_add_search_Click"/>
</div>
后台代码:
public void Btn_add_search_Click(object sender, EventArgs e)
{
HtmlTableRow tr = new HtmlTableRow();
HtmlTableCell td1 = new HtmlTableCell();
HtmlTableCell td2 = new HtmlTableCell();
HtmlTableCell td3 = new HtmlTableCell();
HtmlTableCell td4 = new HtmlTableCell();
DropDownList ddl1 = new DropDownList();
DropDownList ddl2 = new DropDownList();
TextBox Txb = new TextBox();
Button Btn_del = new Button();
Btn_del.Text = "删除";
td1.Controls.Add(ddl1);
td2.Controls.Add(ddl2);
td3.Controls.Add(Txb);
td4.Controls.Add(Btn_del);
tr.Cells.Add(td1);
tr.Cells.Add(td2);
tr.Cells.Add(td3);
tr.Cells.Add(td4);
Tb_adv_search.Rows.Add(tr);
Btn_del.Click += new EventHandler(Btn_del_Click);
}
void Btn_del_Click(object sender, EventArgs e)
{
this.Parent.Parent.Controls.Clear();
}
目的:点击页面上的“添加查询条件”按钮,table自动添加一行,此行有4列,前三列分别为DropDownList、DropDownList、TextBox,第四列为button,并且添加button_onclick事件,点击此按钮,删除当前行
问题描述:我的代码只能添加一行,再点击时不再添加,点击删除按钮可以删除此行,但是在Btn_del_Click事件中设置断点,发现程序并没有进去,我知道这些设计viewstate,控件生命周期什么的,不太懂,方便的话顺便指导一下,谢谢! --------------------编程问答--------------------
如果是以行出现的,那么你可以在点击添加行的时候判断目前有几个button了。
如果超过了4个就不准添加,低于3个就不准移除。 --------------------编程问答-------------------- 可以考虑用javascript来实现增加或删除行~ --------------------编程问答-------------------- 全完可js+ajax操作而且表现友好 --------------------编程问答-------------------- javascript --------------------编程问答-------------------- 这个不要用asp.net,用js动态生成,submit提交。
以前的示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function appendRow(XelementId)
{
var table=document.getElementById(XelementId);
var newRow=table.insertRow(-1);
newRow.insertCell(-1).innerHTML="<input type='text' name='telephone' />";
newRow.insertCell(-1).innerHTML="<input type='checkbox' name='isMobile'/>是否手机";
}
function deleteRow(XelementId)
{
var table=document.getElementById(XelementId);
if(table.rows.length>2)
table.deleteRow(-1);
}
</script>
</head>
<body>
<table id="table1" border="1">
<tr><th>电话号码</th><th ><input type="button" id="append" value="添加" onclick="appendRow('table1')"/><input type="button" id="delete" value="删除" onclick="deleteRow('table1')"/></th></tr>
<tr><td><input type="text name="telephone" /></td><td><input type="checkbox" name="isMobile"/>是否手机</td></tr>
</table>
</body>
</html>
补充:.NET技术 , ASP.NET