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去执行你的后台按钮事件方法。