UserControl中事件不触发?

rookieProgrammer 2007-06-26 04:56:17
这个Button在UserControl中(<input id="btnPass" type="button" onclick="Javascript:return confirm("确定发布信息?");" runat="server" value="发布"〉)confirm返回true仍不触发服务器端事件,请教。谢谢!
...全文
688 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbkqy 2007-06-27
  • 打赏
  • 举报
回复
多看看,page执行的周期,还有服务器是怎么自动生成脚本的,脚本的原型 。这样你写起来,很方便。也知道那里有错了。
sbkqy 2007-06-27
  • 打赏
  • 举报
回复
你用web服务器控件吧,WEB服务器控件,在客户端显示都是submit类型的,就是提交按钮,如果你用http服务器控件,你可以看看客户端的源代码,都是button类型的,他的提交,是通过onclick(原型onclick=" __doPostBack('Button1','')")这个客户端事件用__doPostBack方法来提交的,而你又刚才把onclick给改,就会变成(onclick="return confirm('确定发布信息?'); __doPostBack('Button1','')"),你说,你还能启动服务器事件嘛 ,如果你点是,他返回了true,不执行__doPostBack方法了。你点否,返回false,也不会执行__doPostBack方法呀。
xiaoxiangyumengdai 2007-06-26
  • 打赏
  • 举报
回复
你应该在button的属性里添加吧
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
分给conanlwl 了,我想你明白我意思了。
  • 打赏
  • 举报
回复
你可能不问原因认为任何写了“onclick= "Javascript:return confirm('确定发布信息?'); "”的都应该触发页面回发,这是大胆而错误的推测,如果你学html、javascript然后再学asp.net会比较清楚,因为你可以自己去看浏览器端的源代码。

“在链接上”实际上即使不加脚本,连接也会促成页面回发,根本不是因为有了这个脚本才造成回发的。因果关系太牵强。
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
嘿嘿 我可能没表达清楚,不管怎样多谢各位指教,问题解决了。
  • 打赏
  • 举报
回复
“这个脚步是可以触发服务器端事件的”?看不出来。

ericfine(埃里克)说的对,你需要找人问问页面提交到服务器的机制到底是如何的。
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
我用的是 1.0
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
现在其实就我想问这个问题:如何在一个button上使用这个脚步onclick= "Javascript:return confirm('确定发布信息?'); "使用户点确定后才触发服务器端事件?(我想大家应该做过删除数据前先提示“是否删除?”不过应该通常是在链接上加脚本,现在我是要加在Button上。)
  • 打赏
  • 举报
回复
如果你不是仅仅为了试验一下javascript能不能运行的话,我比较赞同conanlwl(騎鹿走崎路,路不平,鹿顛行,人心難安定)的建议,使用完善的控件才是正途。

如果你一定要使用低级的服务器控件,那么你应该写类似于:

<input type="button" runat="server" id="abc" value="test abc" onserverclick="abc_click" />

这样的注册了服务器端事件的代码。
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
多谢大家帮助!我怎么可能不声明服务器端事件呢,我不加onclick="Javascript:return confirm('确定发布信息?');"这个脚步是可以触发服务器端事件的。我觉得大家应用了解所有只吧这行代码贴出来?
  • 打赏
  • 举报
回复
为什么应该触发服务器端事件?

如果你根本不声明服务器端事件,控件根本不造成页面回发。
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
不好意思,发现这个问题不是因为在usercontrol中的原因,即使不放在usercontrol中,使用这个onclick="Javascript:return confirm('确定发布信息?');"也不触发服务器端事件,有什么办法吗?
可爱的排骨 2007-06-26
  • 打赏
  • 举报
回复
加了runat=server后变成服务端控件了, 其事件也变成后台执行了, 不要把前台和后台,客户端和服务端搞混!
xiaomatian 2007-06-26
  • 打赏
  • 举报
回复
在用户控件里运行没问题的,肯定是你的程序部分有问题的。
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
应该不是其他原因了,不知道打大家以前有没有在usercontrol中放个button运行过这个脚步。
mangshuo 2007-06-26
  • 打赏
  • 举报
回复
事件绑定了吗?是不是事件掉了。
  • 打赏
  • 举报
回复
你在哪里声明了服务器端事件?
rookieProgrammer 2007-06-26
  • 打赏
  • 举报
回复
多谢帮忙,不是双引号的问题?就因为这个button放在是在usercontrol中的问题。
NekChan 2007-06-26
  • 打赏
  • 举报
回复
你这个是双引号的问题吧?
加载更多回复(4)

62,046

社区成员

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

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

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

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