日期:2014-05-17  浏览次数:20496 次

aspx文件中js给隐藏域赋值后台取出来以后是空,我设断点是最后执行的js,求高手!!!!
我的需求是点申请按钮的时候,出现确认框,用户选择是的时候返回true,用户选择取消的时候返回false。
先根据someone的值,通过js脚本中参数访问aspx文件中的js中,然后给隐藏域控件赋值,然后根据值继续做后面的操作,但是一直没有取来hd隐藏域的值。
JScript code

   <script type="text/javascript">
    function yesorno(someone)
    {
           alert(someone);
            if(confirm('您选择的用户'+someone+'已有相应团队是否继续?'))
            {
                     document.getElementById("hd").value='true';
                    alert(document.getElementById("hd").value);       
            }
            else
            {
                  document.getElementById('hd').value="false";
                  alert(document.getElementById("hd").value);
            }
    }

    </script>






HTML code

           <asp:HiddenField ID="hd" runat="server" />



[code=ASP.NET]

    if (somename != "")// 这个的值就是不为空
  {
Page.ClientScript.RegisterStartupScript(this.GetType(), "yesorno", " <script type='text/javascript'>yesorno(" + somename + ") </script>");
    }       
      if (this.hd.Value == "true")//这 Value 只一直就位空  而且设断点先执行这,然后后面操作执行完以后才出现脚本的提示框               
            {
              执行操作;
            }
      else
            {
          执行操作;

                }


而且试了试Jquery 也不好使  求高手


[/code]

------解决方案--------------------
服务器加载aspx程序时,首先要执行后台cs文件中的page_load等方法中的代码,其它按钮事件等是不执行的,生成页面发送到客户端.
客户端执行时会响应js脚本,提交到服务器后除了执行page_load外,还要执行提交按钮事件等
------------------------------
建议
 if (this.hd.Value == "true")//这 Value 只一直就位空 而且设断点先执行这,然后后面操作执行完以后才出现脚本的提示框

执行操作; 

else 

执行操作; 


这段代码放到其他按钮事件里去执行。。。


------解决方案--------------------
又或者在前台js 里面去唤醒后台事件的方式。。。
------解决方案--------------------
逻辑问题,你代码这么写,但是程序可不是先执行后台注册的js再执行后台代码的,也就是说你还没完成赋值,其实代码早就跑完了。
如果要在一个按钮上完成该功能,建议先执行js代码,赋值完成后再使用__doPostBack去执行你的后台按钮事件方法。