//ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<div style="background-color:Red; width:150px; height:200px;">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>//ascx.cs
public partial class WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.Visible = true;
}
protected void Button1_Click(object sender, EventArgs e)
{
this.Visible = false;
if (Session["OPENED_FOLDER"] != null)
{
Hashtable table = (Hashtable)Session["OPENED_FOLDER"];
table.Remove(TextBox1.Text);
}
} public string Name
{
set { this.TextBox1.Text = value; }
}
}// aspx
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<div id="Contents" runat="server"></div>
</form>//aspx.cs
public partial class _Default : System.Web.UI.Page
{
string[] names = new string[] { "123", "456", "789" };
static int count = 0; protected void Page_Load(object sender, EventArgs e)
{
if (Session["OPENED_FOLDER"] == null)
{
Session["OPENED_FOLDER"] = new Hashtable();
}
else
{
Hashtable table = (Hashtable)Session["OPENED_FOLDER"]; foreach (DictionaryEntry de in table)
{
CreateDisplayFilesFolder(de.Value.ToString());
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string name = names[count%3];
count ++;
if (Session["OPENED_FOLDER"] != null)
{
Hashtable table = (Hashtable)Session["OPENED_FOLDER"];
if (table[name] == null )
{
table[name] = name;
CreateDisplayFilesFolder(name);
}
}
} void CreateDisplayFilesFolder(string name)
{
WebUserControl ctr = (WebUserControl)Page.LoadControl("WebUserControl.ascx");
ctr.Name = name;
Contents.Controls.Add(ctr);
}
}
以上是我写的代码,可以动态添加控件,但总是有问题,有时候控件的click事件绑定不上,比如点了三次页面上的按钮创建了3个控件,但如果点击最开始创建的那个控件的按钮,可以将它关掉,然后再点击别的控件,有时候就不行,必须要点两次,实在不知道是啥原因。只是看到有时候控件上的按钮无法触发与其绑定的click事件
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<div style="background-color:Red; width:150px; height:200px;">
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>//ascx.cs
public partial class WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.Visible = true;
}
protected void Button1_Click(object sender, EventArgs e)
{
this.Visible = false;
if (Session["OPENED_FOLDER"] != null)
{
Hashtable table = (Hashtable)Session["OPENED_FOLDER"];
table.Remove(TextBox1.Text);
}
} public string Name
{
set { this.TextBox1.Text = value; }
}
}// aspx
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<div id="Contents" runat="server"></div>
</form>//aspx.cs
public partial class _Default : System.Web.UI.Page
{
string[] names = new string[] { "123", "456", "789" };
static int count = 0; protected void Page_Load(object sender, EventArgs e)
{
if (Session["OPENED_FOLDER"] == null)
{
Session["OPENED_FOLDER"] = new Hashtable();
}
else
{
Hashtable table = (Hashtable)Session["OPENED_FOLDER"]; foreach (DictionaryEntry de in table)
{
CreateDisplayFilesFolder(de.Value.ToString());
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string name = names[count%3];
count ++;
if (Session["OPENED_FOLDER"] != null)
{
Hashtable table = (Hashtable)Session["OPENED_FOLDER"];
if (table[name] == null )
{
table[name] = name;
CreateDisplayFilesFolder(name);
}
}
} void CreateDisplayFilesFolder(string name)
{
WebUserControl ctr = (WebUserControl)Page.LoadControl("WebUserControl.ascx");
ctr.Name = name;
Contents.Controls.Add(ctr);
}
}
以上是我写的代码,可以动态添加控件,但总是有问题,有时候控件的click事件绑定不上,比如点了三次页面上的按钮创建了3个控件,但如果点击最开始创建的那个控件的按钮,可以将它关掉,然后再点击别的控件,有时候就不行,必须要点两次,实在不知道是啥原因。只是看到有时候控件上的按钮无法触发与其绑定的click事件
解决方案 »
- 请问,简单三层,更新职位“job”这个实体类的部分字段,为什么总不成功,数据库里已经允许为空,不更新的字段应该赋什么值?
- 错误 项“ConnectionString”已添加
- [求助]关于URL重写问题
- 200分请教日历控件mm/dd/yyy日历格式怎么改为dd/mm/yy格式,另开帖给100分
- 网站管理工具无法连接数据库
- 问个命名空间和类的问题,很简单的,帮帮我好吗?谢谢了!在线等!
- vs.net打开任何html文件或建立asp项目时死机
- 网上下了个ASP.NET的网站代码,为什么修改其中的cs文件不起效果?
- 请问怎么让每个页面在Page_Load的时候调用一个函数?
- 如何在c#中调用前台javascript编写的函数。
- 从dataset中取数据的问题(很简单,在线等)
- 一个很急的问题,关于access权限问题
如果不熟悉 asp.net 内在机制的话,如页生命周期,通常应该规避采取动态添加控件的方式,
//ctr.Name = name;
ctr.ID= name;
用div好么?