2011-12-06 11 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からの例です:...あなたがClientCallBackを使用する必要があり

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

ここでの例..です

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> 
関連する問題