经过一个方法后,验证控件就不起作用了...

socg 2006-09-13 05:41:25
有个一页面a.aspx、一个用户控件b.ascx
------------------------------------------------------------
页面a.aspx中:
b.ascx,
textBox1,
button1,
RequiredFieldValidator1(验证指向textBox1)
CustomValidator1(验证指向textBox1)
------------------------------------------------------------
用户控件b.ascx中:无控件,但是有一个方法InMe(),代码如下:
public void InMe(System.Web.UI.Control box)
{
this.Controls.Clear();
this.Controls.Add(box);
}
------------------------------------------------------------
直接运行a.aspx一切正常。。。
但是在a中的Load()中加入下面代码后验证控件就不起作用了
private void Page_Load(object sender, System.EventArgs e)
{
b1.InMe(TextBox1);
b1.InMe(Button1);
b1.InMe(CustomValidator1);
b1.InMe(RequiredFieldValidator1);
}
-----------------------------------------------------------
对比两次产生的HTML:

之前Button1的HTML如下:
<input type="submit" name="Button1" value="Button" onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); " language="javascript" id="Button1" />

之后Button1的HTML如下:
<input type="submit" name="b1:Button1" value="Button" id="b1_Button1x" />

除了name和id的改变外居然还少了onclick事件!
------------------------------------------------------------
我在Load()中将事件手工添加
private void Page_Load(object sender, System.EventArgs e)
{
b1.InMe(TextBox1);
b1.InMe(Button1);
b1.InMe(CustomValidator1);
b1.InMe(RequiredFieldValidator1);

Button1.Attributes.Add("onclick","if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(); ");
Button1.Attributes.Add("language","javascript");
}
运行-----客户段的验证正常,但是RequiredFieldValidator1的验证事件始终不会触发!


问题描述完了,如果不清楚的请提出来,我再补充!


...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
socg 2006-09-13
  • 打赏
  • 举报
回复
伤心哦!什么破CSDN....

问一个三层体系结构 这么老的问题都能顶到99,网上都有现成的答案。

具体的问题却没人理。。。

还是忠心的感谢 aassdd(梦幻生) 。。。
soooc 2006-09-13
  • 打赏
  • 举报
回复
...
socg 2006-09-13
  • 打赏
  • 举报
回复
谁能帮我啊,这个难了我两天...
socg 2006-09-13
  • 打赏
  • 举报
回复
删除脚本后重新生成也不行。。。
socg 2006-09-13
  • 打赏
  • 举报
回复
哦,上面写错了,我没有用this.Controls.Clear();
因为我之前是用Table装控件然后将InMe(Table),后来改了。。。
public void InMe(System.Web.UI.Control box)
{
this.Controls.Add(box);
}
aassdd 2006-09-13
  • 打赏
  • 举报
回复
脚本删了重新生成看看.
主要还是.不this.Controls.Clear();看看用别的方法重新生成
socg 2006-09-13
  • 打赏
  • 举报
回复
脚本考进去了,之前运行并没有出问题,经过InMe()后才出的问题!
aassdd 2006-09-13
  • 打赏
  • 举报
回复
没有把脚本拷贝到发布目录中

62,074

社区成员

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

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

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

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