天天看點

C#與Javascript資料互動(轉)

1.如何在JavaScript通路C#函數?

2.如何在JavaScript通路C#變量?

3.如何在C#中通路JavaScript的已有變量?

4.如何在C#中通路JavaScript函數?

問題1答案如下:

javaScript函數中執行C#代碼中的函數:

方法一:1、首先建立一個按鈕,在背景将調用或處理的内容寫入button_click中;

        2、在前台寫一個js函數,内容為document.getElementById("btn1").click();

        3、在前台或背景調用js函數,激發click事件,等于通路背景c#函數;

方法二:1、函數聲明為public             

           背景代碼(把public改成protected也可以)

           public string ss()

           {

              return("a");

           }

        2、在html裡用<%=fucntion()%>可以調用

           前台腳本

           <script language=javascript>

           var a = "<%=ss()%>";

           alert(a);

           </script>

方法三:1、<script language="javascript">

           <!--

           function __doPostBack(eventTarget, eventArgument)

              var theForm = document.Form1;     //指runat=server的form

              theForm.__EVENTTARGET.value = eventTarget;

              theFrom.__EVENTARGUMENT.value = eventArgument;

              theForm.submit();

           -->

           <input id="Button1" type="button" name="Button1" value="按鈕" onclick="javascript:__doPostBack('Button1','')">

方法四:<script language="javascript">

function SubmitKeyClick()

{

    if (event.keyCode == 13)

    {

        event.cancelBubble = true;

        event.returnValue = false;

        document.all.FunName.value="你要調用的函數名";

        document.form[0].submit();

    }

}

</script>

<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">

<input type="hidden" name="FunName"> 〈!--用來存儲你要調用的函數 --〉

在.CS裡有:

public Page_OnLoad()

if (!Page.IsPost())

string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";

//根據傳回來的值決定調用哪個函數

switch(strFunName)

case "enter()":

enter() ; //調用該函數

break;

case "其他":

//調用其他函數

default:

//調用預設函數

public void enter()

//……比如計算某值

問題2.如何在JavaScript通路C#變量?

答案如下:

方法一:1、通過頁面上隐藏域通路<input id="xx" type="hidden" runat="server">

方法二:1、如背景定義了PUBLIC STRING N;前台js中引用該變量的格式為'<%=n%>'或"+<%=n%>+"

方法三:1、或者你可以在伺服器端變量指派後在頁面注冊一段腳本

           "<script language='javascript'>var temp=" + tmp + "</script>"

           tmp是背景變量,然後js中可以直接通路temp獲得值。

方法一:1、前台使用靜态文本控件隐藏域,将js變量值寫入其中;

        2、背景用request["id"]來擷取值;

方法二:可以用cookie或session

c#代碼中執行javaScript函數:

方法一:1、Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>");

方法二:使用Literal類,然後

private void Button2_Click(object sender, System.EventArgs e)

 string str;

 str="<script language='javascript'>";

 str+="selectRange()";

 str+="</script>";

 //Literal1.Visible=true;

 Literal1.Text=str;

部落格園大道至簡

<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>

轉載請注明:部落格園

繼續閱讀