CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于调用__doPostBack的问题(急~~~~~~~~~)

楼主yizhili(梨子)2004-12-01 20:33:00 在 .NET技术 / ASP.NET 提问

我在一个控件的OnClick方法中打开了一个模式对话框,等待对话框返回后调用__doPostBack提交  
  但是请求并没有回到服务器端,而是又打开了一个IE窗口。。。。  
  请问应该如何解决?  
   
  //bow 问题点数:100、回复次数:15Top

1 楼Pipiloo(皮皮鲁)回复于 2004-12-01 20:40:58 得分 0

能不能说得清楚一点,方便的话最好贴出代码Top

2 楼yizhili(梨子)回复于 2004-12-01 20:45:08 得分 0

<script   language='javascript'>  
  function   addproduct(   redirectPage,   SendID,   CallBackID)   {    
  var   ret   =   window.showModalDialog(   redirectPage   );    
  if   (   ret   !=   undefined   )   {    
  document.getElementById(   SendID   ).value   =   ret;    
  __doPastBack(   CallBackID,   '');  
  }    
  }  
  </script>  
   
  这样一段javascript,然而__doPastBack并没有提交到服务器,CallBackID的事件并没有执行,而是把redirectPage又显示了一遍(在一个新窗口里,不是模式对话框)  
   
  对addproduct的调用:  
  <input   id="CallBackControl1"   RedirectPage="Default.aspx"   name="CallBackControl1"   onclick="javascript:addproduct(   'WebForm1.aspx','CallBackControl1','CallBackControl1');"   value="请点击此处选择"   readonly="readonly"   style="Z-INDEX:   109;   LEFT:   344px;   POSITION:   absolute;   TOP:   440px"   />  
  Top

3 楼net_lover(【孟子E章】)回复于 2004-12-01 20:47:01 得分 60

http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4Top

4 楼yizhili(梨子)回复于 2004-12-01 20:58:55 得分 0

谢谢  
  但是虽然新窗口不跳出了,事件却同样没有发送呀?  
   
  另外请教一下如何把<base   target="_self"   />之类的语句写到<head></head>之间,因为我是用一个共同基类来做ModalDialog的Top

5 楼yizhili(梨子)回复于 2004-12-01 20:59:39 得分 0

汗……没有postback的原因找到了……拼写错误……Top

6 楼yizhili(梨子)回复于 2004-12-01 21:00:22 得分 0

个么问一下,为什么每次都会打开一个新窗口呢?Top

7 楼bitm(爱思派)回复于 2004-12-01 21:24:54 得分 0

是你自已设的onclick="javascript:addproduct(   'WebForm1.aspx','CallBackControl1','CallBackControl1');"Top

8 楼yizhili(梨子)回复于 2004-12-01 21:28:24 得分 0

我是问ModalDialog结束之后啊……Top

9 楼yizhili(梨子)回复于 2004-12-01 21:30:07 得分 0

想问一下javascript中变量作用域是怎么算的啊?  
  我把__doPastBack(   CallBackID,   '');改成__doPastBack(   CallBackID,   ret);  
  但得到的argument却是空字符串Top

10 楼fa2002(风翔万里)回复于 2004-12-01 21:41:21 得分 15

这个问题的思路就不对,至少表明你的思维方式还停留在传统的C/S阶段。作为技术的细节来说,也不能在ASP.NET中直接使用_doPastBack。这样做不单不可学,而且有可能造成很多连锁不可意料的连锁反应。Top

11 楼Net_Soul(网 魂)回复于 2004-12-01 21:41:59 得分 5

试一下加  
  protected   override   void   OnPreRender(EventArgs   e)  
  {  
        base.OnPreRender(e);  
        Page.GetPostBackEventReference(this,"");  
  }Top

12 楼yizhili(梨子)回复于 2004-12-01 21:48:18 得分 0

to   fa2002:  
   为什么要这么说呢?  
   正是ASP.NET在大量使用__doPostBack(每一个LinkButton)  
   如果需要添加一些自定义事件的话,也得要用它啊  
   
  to   Net_Soul:  
   谢谢,不过问题不在这儿。__doPostBack函数正确生成了  
  Top

13 楼zhy0101(莠)回复于 2004-12-01 21:58:39 得分 0

Page.GetPostBackEventReference   方法   (Control)  
  参数control要在服务器上处理回发的服务器控件。  
  返回值  
  可插入客户端事件处理程序的客户端函数调用的文本。  
   
  public   class   MyControl1   :   Control,   IPostBackEventHandler  
  {  
        public   int   Number  
        {  
            get  
            {  
                if   (   ViewState["Number"]   !=null   )  
                return   (int)   ViewState["Number"];  
                return   50;  
            }  
   
            set  
            {  
                ViewState["Number"]   =   value;  
            }                  
        }  
        public   void   RaisePostBackEvent(string   eventArgument)  
        {  
            Number   =   Number   +   1;  
        }  
   
        protected   override   void   Render(HtmlTextWriter   writer)  
        {  
            writer.Write("The   Number   is   "   +   Number.ToString()   +   "   ("   );  
   
            writer.Write("<a   href=\"javascript:"   +   Page.GetPostBackEventReference(this)   +   "\">Increase   Number</a>");  
        }  
  }  
  Top

14 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2004-12-01 23:03:22 得分 15

http://community.csdn.net/Expert/topic/2637/2637793.xml?temp=.6674158Top

15 楼killerliu(越学越无知。。。。。-_-)回复于 2004-12-01 23:23:57 得分 5

在<head>中加入<base=self>Top

相关问题

  • 关于调用__doPostBack的问题(急~~~~~~~~~)
  • dll的调用???急??
  • 方法调用??????急!!!!!
  • javascript无法调用后台方法(__doPostBack('Del','');方法无效),高手请进!急!!在线等待!
  • VB控件调用,急!
  • applet 调用 servlet 问题 ,急
  • 急!jsp调用javaBean出错!!!
  • 关于调用问题,急!!!!!!
  • JAVA调用DB2失败(急~~~~)!!!
  • 急:关于DLL调用

关键词

  • 服务器
  • javascript
  • 调用
  • dopostback
  • dopastback
  • callbackid
  • 对话框
  • 事件
  • viewstate
  • 打开

得分解答快速导航

  • 帖主:yizhili
  • net_lover
  • fa2002
  • Net_Soul
  • webdiyer
  • killerliu

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo