请问各位大侠:onclick="__dopostback('control','')"是否是自动产生的

guobaoxiang 2003-09-12 09:22:19
请问作为服务器控件运行的比如:Imagebutton、httpInputImage等,在生成的客户端的文件中,是否自动生成onclick="__dopostback('control','')",我的为什么看不到?而且在Page_load中检测Request.Form("__EVENTTARGET")的值也是"",为什么?
...全文
82 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chnking 2003-09-12
  • 打赏
  • 举报
回复
ok了,<input type=image id=img1>控件提交到服务端是这样的形式:?img1.x=nn&img1.y=nn.

Request.Form["img1.x"]就可以了
OK521 2003-09-12
  • 打赏
  • 举报
回复
在 postback中得到的肯定是空的。因为单击按钮后就要回送到服务器。
你可以在生成的原文件中把自动生成的JAVASCRIPT改一下。如下,这样就可以德到所有的值了。

<script language="javascript">

function _dopostback(eventargs,eventargument){

var strreturn
var theform=document.formid
theform._eventargent.value=eventTaget;
theform._eventargument.value=eventargument;
strreturn +=eventargument
theform.submit()
</script>

MichaelJordan23 2003-09-12
  • 打赏
  • 举报
回复
回复chnking(kent):可是检测不到Request.form("x")啊
回复OK521(拉登陪我打CS) :可我得到的request.form("__EVENTTARGET")的确是空串
OK521 2003-09-12
  • 打赏
  • 举报
回复
你门看看BUTTON控件自动生成的代吗,
<input type="hidden" name="_eventargent" value=""/>
<input type="hidden" name="_eventargument" value=""/>
<script language="javascript">

function _dopostback(eventargs,eventargument){
var theform=document.formid
theform._eventargent.value=eventTaget;
theform._eventargument.value=eventargument;
theform.submit()
</script>

上面的代码中enentargs参数就是用来判断是哪一个按钮触发的
chnking 2003-09-12
  • 打赏
  • 举报
回复
那就根据传回来的参数:x=nn&y=nn.的坐标范围,再根据几个图片按钮在页面的坐标范围(这个可以从按钮的Style中得到),来判断究竟是哪一个按钮触发的吧.
OK521 2003-09-12
  • 打赏
  • 举报
回复
你误会我的意思了。
我说的那JAVASCRIPT是BUTTON控件自动生成的。
因为每次单击按钮后,都要回送到服务器端,所以在POSTBACK中得不到。

你要的植就在下面的隐藏控件中。你看看编一后浏览的原文件
theform._eventargent.value=eventTaget;
theform._eventargument.value=eventargument;
MichaelJordan23 2003-09-12
  • 打赏
  • 举报
回复
我还是 guobaoxiang(落叶知秋),多谢楼上的各位仁兄
回复chnking(kent) :可是我的确必须用几个图片按钮来实现,该怎么办?
回复OK521(拉登陪我打CS) :我的提交中包含很多复杂的控制、必须调用.Net中的变量,用JavaScript很难实现,怎么办?
OK521 2003-09-12
  • 打赏
  • 举报
回复
onclick="__dopostback('control','')"

每当点击按钮后,就调用javascript函数,此函数需要的第一个参数就是控件的ID,如上面的CONTROL,第二个参数包函事件的额外信息,在JAVASCRIP中还有两行:
theform._eventargent.value=eventTaget;
theform._eventargument.value=eventargument;

检测不是从ImageButton或HttpInputImage传来的,而是从上面两个隐藏控件传来的
chnking 2003-09-12
  • 打赏
  • 举报
回复
呵呵,倒是个难题,<input type=image>的控件提交到服务端是这样的形式:?x=nn&y=nn.
估计到服务端要根据坐标范围来区分是哪个控件引发的了
MichaelJordan23 2003-09-12
  • 打赏
  • 举报
回复
我还是 guobaoxiang(落叶知秋),那篇文章我早就看过了,可是我还是不明白在Page_Load中该如何检测是不是从ImageButton或HttpInputImage传来的PostBack,请多帮忙。
chnking 2003-09-12
  • 打赏
  • 举报
回复
Imagebutton、httpInputImage,这两个到客户端都是<input type=image>,这两个服务端控件的点击事件是不走onclick="__dopostback('control','')"这条路的,因为它们本身点击之后就会提交到服务端的,只有那些到客户端生成的标签不能自己触发提交的控件才会利用onclick="__dopostback('control','')"来提交表单.

看这片文章<Asp.net 中服务端控件事件是如何触发的>:
http://www.csdn.net/develop/read_article.asp?id=20670
辅助也行 2003-09-12
  • 打赏
  • 举报
回复
我又试了一下,就算是在OnserverClick中写了代码,也没有生成Onclick="__dopostback",Why?请各位大侠多多指点
辅助也行 2003-09-12
  • 打赏
  • 举报
回复
ImageButton和HttpInputImage没有AutoPostback属性
辅助也行 2003-09-12
  • 打赏
  • 举报
回复
服务器控件在不写事件的情况下,也会PostBack,是吧
另外,Request.Form("__EVENTTARGET")没有值并不是在第一次进入页面的时候,我的检测是在!IsPostBack中
hustzxs 2003-09-12
  • 打赏
  • 举报
回复
是不是你没有设置AutoPostback属性为真的缘故吧
andey11 2003-09-12
  • 打赏
  • 举报
回复
Imagebutton、httpInputImage等要定义服务端事件OnClick后会有的
因为那是系统自动生成的客户端驱动服务端事件的方式,


Request.Form("__EVENTTARGET"),如果你是在第一次进入该页面
或者没有任何的事件回发,怎么可能会有呢?
Englishgenius 2003-09-12
  • 打赏
  • 举报
回复
是的

62,041

社区成员

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

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

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

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