js調用.net后台事件、后台調用前台以及js調用服務器控件


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

方法一:間接觸發后台代碼

        1、首先建立一個服務端控件按鈕命名為btn1,雙擊進入后台將調用或處理的內容寫入btn1_click中;  

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

        3、在前台調用js函數,激發click事件,等於訪問后台c#函數;

        代碼如下:

<input id="hBt" type="button" value="CLICK ME2" onclick="fun2()" />

<asp:Button ID="aBt" runat="server" Text="server BT" OnClick="aBt_Click" />

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

protected void aBt_Click(object sender, EventArgs e)    

{         Label1.Text = " 嗦嘎~~~";     }

js代碼如下:

function fun2() {     

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

}

  

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

          后台代碼(把public改成protected也可以)

          public string ss()

          {

              return("a");

          }//

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

          前台腳本

          <script language=javascript>

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

          alert(a);

          </script>

       有參數的形式

如圖所示 都是html控件 輸入姓名 點擊按鈕獲取您輸入的信息!

代碼如下: <div>             Your Name is:<input id="name" type="text" /> 

           <input id="clickBt" type="button" value="GET NAME" onclick="fun()" />             <input id="nameTxt" type="text" /> </div> js如下: <script language="javascript" type="text/javascript">  function fun()   {             var name = document.getElementById('name').value;             var nameStr = '<%=getName("'+name+'") %>';頁面在第一次加載的時候,由於頁面的執行順序,運行到這里的時候回以 ' + name + '的值傳到后台,但不真正的執行后台方法             document.getElementById('nameTxt').value = nameStr;         }     </script>
后台代碼如下: public string getName(string namePar)     {         return namePar + " is your name";     } 方法三: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();

          }

          -->

          </script>

          <input type="button" value="按鈕" >

      

方法四: <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 type="text">

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

在.CS里有:

public Page_OnLoad()

{

if (!Page.IsPost())

{

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

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

switch(strFunName)

{

case "enter()":

enter() ; //調用該函數

break;

case "其他":

//調用其他函數

break;

default:

//調用默認函數

break;

}

}

}

public void enter()

{

//……比如計算某值

}

2.如何在JavaScript訪問C#變量?

答案如下:

方法一:1、通過頁面上隱藏域訪問 <input type="hidden" runat="server">

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

方法三:1、或者你可以在服務器端變量賦值后在頁面注冊一段腳本

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

          tmp是后台變量,然后js中可以直接訪問temp獲得值。

3.如何在C#中訪問JavaScript的已有變量?

答案如下:

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

        2、后台用request["id"]來獲取值;

方法二:可以用cookie或session

4.如何在C#中訪問JavaScript函數?

答案如下:

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;

}

客戶端如何獲取ASP.net服務器控件ID

分類: C# 在ASP.NET中服務器控件的ID在客戶端會發生一定的變化。如何利用document.getElementById()來獲取控件中的值成為了一個難題。比如:在一個登錄頁面里面放入一個帳號輸入框,一個密碼輸入框,一個提交按鈕

<asp:TextBox ID="TextBox_Uid" runat="server" MaxLength="20" ></asp:TextBox>

<asp:TextBox ID="TextBox_Pwd1" runat="server" MaxLength="20" TextMode="Password"></asp:TextBox>

<asp:Button ID="Button_Login" runat="server" Text="登錄" OnClick="Button_Login_Click" OnClientClick="return CheckReg()" />

 

 如何准確獲取服務器控件的ID?請看下面:使用<%=控件ID.ClientID%>

為了減少輸入的頻繁提交。我在客戶端寫入一個Javascript方法,簡單判斷輸入的值是否符合要求。如果賬號和密碼輸入不為空,我就提交到后台進行判斷。 控件TextBox的ID為TextBox_Uid和TextBox_Pwd1但是在客戶端竟然變成了ctl00_TextBox_User和ctl00_TextBox_Pwd。

<script language="javascript" type="text/javascript">

//檢查賬號、密碼是否為空

function CheckReg()

{

var uid = document.getElementById("<%=TextBox_Uid.ClientID %>").value;

var pwd1 = document.getElementById("<%=TextBox_Pwd1.ClientID %>").value;

if(uid == "" || pwd1 == "")

{

alert("賬號和密碼不能為空!");

return false;

}

return true;

}

</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM