2011-12-06 72 views
1

淨/ C#應用程序,我有一個鏈接按鈕:asp.net設置會話變量和執行JavaScript函數

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

當用戶點擊這個按鈕,我想執行這個javascript函數:

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

和更改會話變量:

Session["ID"] = 2; 

的問題是,會話變量只能在日變化e代碼隱藏。

如何在點擊鏈接按鈕時執行這兩個操作?

在此先感謝

回答

4

更改值服務器端或者要求一個完整的帖子頁面或Ajax調用。

因此,您可以添加一個HiddenField並將其值設置爲2個客戶端,然後在您的服務器端按鈕處理程序中使用該值設置會話變量。

或者您可以對Web服務執行ajax調用。

對於相同的點擊事件的執行客戶端和服務器端操作,您可以執行以下操作。像往常一樣添加服務器端點擊處理程序,然後用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> 
+0

我知道。當我點擊一個按鈕 – Youssef

+0

時,我問是否可以同時完成上述功能。我用'ClientScriptManager.RegisterOnSubmitStatement()'的信息更新了我的答案。 – jrummell

1

您可能需要使用ClientCallBack ...

這裏是它的一個例子..

MSDN lINK FOR CLIENT CALLBACK

<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>