PlaceHolder动态加载包含验证控件的用户控件

lzqsmst 2008-03-03 06:59:31
我写了一个用户控件
用户控件里面有个textbox和所对应的一个CustomVallidator的验证控件
我在用户控件的ascx文件里面定义了一个CustomVallidator的ClientValidationFunction
用于检验textbox输入之后的内容

然后我将这个用户控件动态加载到一个PlaceHolder里面
可供用户手工增删

结果出了一个问题
就是当我增加数量多于一个的用户控件时 所有的CustomVallidator验证的是最后一个装载的用户控件中的textbox

这是怎么回事 我查了好久没法查出问题
...全文
123 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2008-03-04
  • 打赏
  • 举报
回复
测试,没有问题,动态加载后校验控件仍然有效。下面是我测试的代码
protected void Page_Load(object sender, EventArgs e)
{
UserControl mycontrol=(UserControl) Page.LoadControl("~/test.ascx");
UserControl mycontrol1 = (UserControl)Page.LoadControl("~/test.ascx");
this.PlaceHolder1.Controls.Add(mycontrol);
PlaceHolder1.Controls.Add(mycontrol1);
for (int i = 0; i < 2; i++)
{
UserControl myuser = new UserControl();
myuser = (UserControl)Page.LoadControl("~/test.ascx");
PlaceHolder1.Controls.Add(myuser);
}

}

动态加了4个用户控件,校验有效
lzqsmst 2008-03-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wanghui0380 的回复:]
测试,没有问题,动态加载后校验控件仍然有效。下面是我测试的代码
……
[/Quote]

验证控件没有出问题

主要是验证控件找不到他所对应的javascript函数
例如说加载4个控件时
控件一的验证控件每次用的javascript函数都是最后一个控件的
lzqsmst 2008-03-03
  • 打赏
  • 举报
回复
在线等 没人知道么?
lzqsmst 2008-03-03
  • 打赏
  • 举报
回复
CustomVallidator的ClientValidationFunction 是一个javascript的Function
叫 a()

我从网页的源文件发现每次加载用户控件的时候
用户控件的ascx文件也会加载一次
相应的a()也就加载一次
最后如果加载了xx个用户控件
源文件中就有xx个a()

所以CustomVallidator就用最后一个a()来验证

现在的问题是如何让每个用户控件中的CustomVallidator找到他相应的a()呢?

62,248

社区成员

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

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

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

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