2011-11-01 18 views
0

是否有可能从代码隐藏创建(是/否)javascript消息框,并检索返回值?创建一个JavaScript的msgbox(是/否),并获得代码隐藏的结果

我想根据客户端设置会话对象的内容是/否。

这个想法是使用这种方法从我的默认网页重定向iphone客户端。

“你想去这个网站的iphone版吗?”

--YES重定向到“iphone”默认页面,并设置会话对象以避免再次询问此问题,如果在会话对象的生命周期内再次请求默认页面 。

--NO设置会话对象以避免再次询问此问题,如果默认页面在会话 对象的生命期内再次被请求。

+1

怎么样[确定](https://developer.mozilla.org/en/window.confirm)? '确认(“你想去这个网站的iphone版本?”)' –

+0

那么如此着名的AJAX呢? :) –

回答

1

或者你可以在一个隐藏字段藏匿的价值和阅读它在服务器端。

**编辑**

OP评论:

我想设置一个会话对象的基于客户端上的内容是/否。

无论哪种方式,你看看它,如果他想在会话中设置此值,他必须回到服务器。

+0

这会工作,但我认为我的解决方案更直接。 –

1

在后面的代码上FormLoad或者是任何一个最适合你的需要,你只需要设置你的按钮的OnClientClick这个如下:

button.OnClientClick = "IphoneVersion()"; 

在标记中的JavaScript创建一个函数如下:

function IphoneVersion() { 
     if (confirm('Do you want to go the iphone version of this site?')) { 
      //set hidden value here   } 
     else { //don't set hidden value } 
    } 

您可以将您的隐藏控制值设置为是/否文本,并在代码后面引用它,或者您可以在该函数本身中重定向。 这将做到这一点!

-2

尝试这样:

confirmSomething = function(){   
    __doPostBack("<%=Button1.ClientID%>", confirm("Are you sure?")); 
} 

<asp:Button ID="Button1" runat="server" OnClientClick="confirmSomething();" /> 

代码隐藏:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument) 
{ 
    bool conf = bool.Parse(eventArgument); 
} 
+0

请解释一下吗?这种方法有什么问题?看起来比设置cookie好很多。 –