设置会话变量并执行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
更改值服务器端需要完整的页面或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>