设置会话变量并执行javascript函数

本文关键字:javascript 函数 执行 会话 变量 设置 | 更新日期: 2023-09-27 18:16:50

net/c#应用程序我有一个链接按钮:

<asp:LinkButton runat="server" ID="LinkButton1"/>

当用户点击这个按钮时,我想执行这个javascript函数:

document.getElementById('LinkButtonPrevious').click();

并更改Session变量:

Session["ID"] = 2;

问题是会话变量只能在后面的代码中更改。

当链接按钮被点击时,我如何执行两者?

Thanks in advance

设置会话变量并执行javascript函数

更改值服务器端需要完整的页面或ajax调用。

所以你可以添加一个HiddenField并将其值设置为2客户端,然后在你的服务器端按钮处理程序中使用该值来设置会话变量

或者你可以用ajax调用web服务。

对于同一个单击事件执行客户端和服务器端操作,您可以执行以下操作。像往常一样添加服务器端Click处理程序,然后使用ClientScriptManager.RegisterOnSubmitStatement注册客户端事件。以下是来自MSDN的示例:

<%@ Page Language="C#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client script on the page.
    String csname = "OnSubmitScript";
    Type cstype = this.GetType();
    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;
    // Check to see if the OnSubmit statement is already registered.
    if (!cs.IsOnSubmitStatementRegistered(cstype, csname))
    {
      String cstext = "document.write('Text from OnSubmit statement');";
      cs.RegisterOnSubmitStatement(cstype, csname, cstext);
    }
  }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
     <form    id="Form1"
            runat="server">
     <input type="submit"
            value="Submit" />
     </form>
  </body>
</html>

你可能不得不使用ClientCallBack…

这里有一个例子…

MSDN连接客户端回调

<script type="text/ecmascript">
    function LookUpStock() {
        var lb = document.getElementById("ListBox1"); // this two statements set your javascript
        var product = lb.options[lb.selectedIndex].text;
        CallServer(product, ""); //this method contains code where you set session variable
    }
    function ReceiveServerData(rValue) {
        document.getElementById("ResultsSpan").innerHTML = rValue;
    }
</script>