当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,