码:
AddVisaControl.ascx
<%@ Control Language="C#" autoEventWireup="true" CodeBehind="AddVisaControl.ascx.cs" EnableVIEwState="false" inherits="PyramID.AddVisaControl" %><%@ Register assembly="BasicFrame.WebControls.BasicdatePicker" namespace="BasicFrame.WebControls" tagprefix="BDP" %><div ID="divreg" runat="server"><table ID="tbl" runat="server"><tr> <td > Visa Number:</td> <td ><asp:TextBox ID="txtUser" WIDth="160px" runat="server"/></td> <td > Country name:</td> <td ><asp:DropDownList ID="dropCountry" WIDth="165px" runat="server"></asp:DropDownList></td></tr> <tr> <td > Type of Visa:</td> <td ><asp:DropDownList ID="dropVisa" WIDth="165px" runat="server"> </asp:DropDownList></td><td > Type of Entry:</td><td ><asp:DropDownList ID="dropEntry" WIDth="165px" runat="server"> </asp:DropDownList></td></tr><tr><td > Expiry Date</td><td ></td></tr></table>
.cs代码:
下面的代码是第一次点击添加按钮时它正在添加控件但是如果我关闭浏览器窗口并再次出现并单击添加按钮我得到更多控件的问题
static int i = 0; protected voID addnewtext_Click(object sender,EventArgs e) { i++; for (int j = 0; j <= i; j++) { AddVisaControl ac = (AddVisaControl)Page.LoadControl("AddVisaControl.ascx"); PlaceHolder1.Controls.Add(ac); PlaceHolder1.Controls.Add(new literalControl("<BR>")); } }
在下面的图像如果我点击添加更多签证按钮我想获得另一个签证详细信息
有任何想法吗?提前致谢
解决方法 我将展示一个你可以按照自己的方式尝试的例子一个想法是创建一个按钮列表,您可以在其中存储您创建的按钮inbtnCreateDynamic_click
你可以有一个像这样的方法:
private button Createbutton(string ID,string name) { button b = new button(); b.Text = name; b.ID = ID; b.Click += new EventHandler(button_Click); b.OnClIEntClick = "buttonClick('" + b.ClIEntID + "')"; return b; }
在btnCreateDynamic_click中你可以有类似的东西:
button b = Createbutton("dinamicBtn"+myDinamicbuttonsList.Count.ToString(),"dinamicBtn"+myDinamicbuttonsList.Count.ToString());myDinamicbuttonsList.add(b);and in the pageLoad for example you Could do something likeforeach(button btn in myDinamicbuttonsList){ form1.Controls.Add(btn));}List<button> myDinamicbuttonsList = new List<button>();
myDinamicbuttonsList应存储在每个请求后可以检索到的位置.
编辑:在页面加载中你可以有这样的东西:
if(Session["myDinamicbuttons"] == null){ List<button> myDinamicbuttonsList = new List<button>(); Session["myDinamicbuttons"] = myDinamicbuttonsList;}foreach(button btn in Session["myDinamicbuttons"] as List<button>){ form1.Controls.Add(btn));}
我没有测试它,但它应该工作.
也可以提供以下一些信息可能更有帮助..
您在客户端的按钮单击事件将导致页面回发,这将启动ASP.Net页面生命周期.
您在服务器上的按钮单击事件是PostBackEvent,您应该能够使用在Load或Init事件中使用的相同方法调用CreateMybutton().
总结以上是内存溢出为你收集整理的c# – 如何在asp.net中单击按钮时动态添加控件?全部内容,希望文章能够帮你解决c# – 如何在asp.net中单击按钮时动态添加控件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)