动态加载用户控件,值怎么存起来?

哈喽Baby 2009-09-23 12:04:57
我新建一个用户控件,里面有两个TextBox,我在新的页面用一个添加一个button,点击的时候添加一个用户控件,可是,点击button的时候,用户控件里面textbox存的值就丢了,怎么才能存下来,有代码吗?
...全文
633 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gengchenhui 2011-07-28
  • 打赏
  • 举报
回复
可biaoji
大Y 2010-12-18
  • 打赏
  • 举报
回复
学习了,BD
ljw159357789 2010-12-18
  • 打赏
  • 举报
回复
佩服!
哈喽Baby 2009-09-24
  • 打赏
  • 举报
回复
太感谢了!虽然我不太理解,但是我可以慢慢理解!
  • 打赏
  • 举报
回复
为什么我会写上
<asp:Button ID="Button2" runat="server" Text="随便测试,什么也不做" />
句呢?

这是经验之谈,我用一句话首先测试一个asp.net页面是否是专业开发的。当我们操作时,随时可以点击这个测试按钮进行回发,如果页面上状态不混乱,才去考虑怎么丰富页面功能的问题。如果这个测试都经不起,那么肯定是技术上有重大缺失,首先要解决入门问题。
  • 打赏
  • 举报
回复
搞懂这个demo的机制,相当于你学习了asp.net专业开发二年的水平。
  • 打赏
  • 举报
回复
给你写了一个比你要求全面一点的代码。有时候只有全面一点点,才能看出设计时候足够可靠。

下面有三个文件:

代码文件IXXX.cs
public interface IXXX
{
string Name { get; set; }
}


用户控件文件 XXX.ascx
<%@ Control Language="C#" ClassName="XXX" %>
<%@ Implements Interface="IXXX" %>

<script runat="server">
public string Name
{
get
{
this.EnsureChildControls();
return this.pName.Text;
}
set
{
this.EnsureChildControls();
this.pName.Text = value;
}
}
</script>

<asp:Label runat="server" ID="pName"></asp:Label>
先生(女士):
<br />
你的合同付款期限已到,未付款<asp:TextBox runat="server" ID="pMoney" Width="60px" />元人民币,请及时付款。
<br />
<br />
XXX年XXX月XXX日


aspx文件:
<%@ Page Language="C#" %>

<%@ Import Namespace="System.Collections.Generic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

List<string> 插入的人物唯一编号
{
get
{
var x = ViewState["num"];
if (x == null)
{
x = new List<string>();
ViewState["num"] = x;
}
return (List<string>)x;
}
}

protected void Page_Load(object sender, EventArgs e)
{
CreatePlaceHolder();
}

void InsertAscx(string 唯一编号, bool isLoadCompleted)
{
var container = new PlaceHolder { ID = "pl_" + 唯一编号 };
this.PlaceHolder1.Controls.Add(container);
var c = this.LoadControl("XXX.ascx");
c.ID = "MyCtrl_" + 唯一编号;
container.Controls.Add(c);
var b = new Button { Text = "删除", ID = "Del_" + 唯一编号 };
container.Controls.Add(b);
container.Controls.Add(new LiteralControl { Text = "<hr />" });
if (isLoadCompleted)
{
((IXXX)c).Name = 唯一编号;
}
else
{
b.Click += (sender, e) =>
{
var cc = this.PlaceHolder1.FindControl("pl_" + 唯一编号);
this.PlaceHolder1.Controls.Remove(cc);
插入的人物唯一编号.Remove(唯一编号);
};
}
}

void CreatePlaceHolder()
{
this.PlaceHolder1.Controls.Clear();
for (var i = 0; i < 插入的人物唯一编号.Count; i++)
InsertAscx(插入的人物唯一编号[i], false);
}

protected void Button1_Click(object sender, EventArgs e)
{
var 随机产生唯一编号 = DateTime.Now.ToString("mmssfff");
插入的人物唯一编号.Add(随机产生唯一编号);
InsertAscx(随机产生唯一编号, true);
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" Text="插入" OnClick="Button1_Click" /> 
<asp:Button ID="Button2" runat="server" Text="随便测试,什么也不做" />
<hr />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</form>
</body>
</html>

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧