使用JavaScript調用asp.net代碼

來源:互聯網
上載者:User
1.如何在javascript訪問C#變數?
方法一:使用<%=%
<input id="Button3" type="button" value="js調用c#變數" onclick="return Button3_onclick()" />
function Button3_onclick()
{        
    alert('我的名字:'+ '<%=name %>');
}
cs代碼中的定義:protected string name = "chenlaing";
方法二:使用Hidden隱藏控制項
<input id="Hidden1" runat="server" type="hidden" />
在cs代碼中給該隱藏控制項賦值: Hidden1.Value = "陳亮";
function Button3_onclick()
{        
    alert(document.getElementById("Hidden1").value);
}
方法三:在cs代碼中註冊js指令碼
string tmp = "陳全用";
ClientScript.RegisterClientScriptBlock(this.GetType(), null, "<script language='javascript'>var temp='" + tmp + "'</script>");
function Button3_onclick()
{        
     alert(temp);

2. 在javascript訪問C#函數:
方法一:使用<% %>
<script type="text/javascript">
          var s = "<%=ShowBehindInfo("chenliang")%>"; 
          document.write(s);
</script>
cs後台代碼:
protected string ShowBehindInfo(string name)
{
    return "姓名:" + name;
}
方法二:使用<% %>
<script   type="text/javascript">
     document.write("<%ShowResult();%>"); 
</script>
cs後台代碼:
protected void ShowResult()
{
    Response.Write("我是陳全勇氣");
}
方法三:
<style>
        .btn
        {
            display:none;
        }
</style>
<asp:Button ID="Button1" runat="server" CssClass="btn" Text="Button" OnClick="Button1_Click" />
<div onclick="invokeCharp()">點擊調用aspx.cs的代碼</div>
以下js代碼將調用背景cs代碼
function invokeCharp()
{
    document.getElementById("Button1").click();
}
通過js調用的代碼
protected void Button1_Click(object sender, EventArgs e)
{
    Response.Write("被js調用的代碼");
}
方法四:
<input type="hidden"   name="txtFunName">
<input id="Button2" type="button" value="調用cs函數" onclick="return Button2_onclick()" />
//將調用的資訊存入隱藏控制項中 在提交表單
function Button2_onclick()
{
    document.all.txtFunName.value="show";
    document.forms[0].submit();
}
//後台cs代碼
protected void Page_Load(object sender, EventArgs e)
{
        string strFunName = Request.Form["txtFunName"] != null ? Request.Form["txtFunName"] : "";
        //根據傳回來的值決定調用哪個函數
        switch (strFunName)
        {
            case "show":
                enter(); //調用該函數
                break;
            default:
                //調用預設函數
                break;
        }
}
方法五:
使用__doPostBack();
<input id="Button6" type="button" value="調用服務端的button" onclick="Button6_onclick()" />
<asp:Button ID="btn" runat="server"   Text="Button" OnClick="btn_Click" /> 
<asp:CheckBox ID="CheckBox1" AutoPostBack="true" runat="server" />
function Button6_onclick()
{
   var res = "chenliang";
   __doPostBack('btn','chenlinng');
}
//以上指令碼將調用以下事件代碼
protected void btn_Click(object sender, EventArgs e)
{
    string target = Request.Params["__EVENTTARGET"];
    string args = Request.Params["__EVENTARGUMENT"];
    Response.Write(target + "<Br>" + args);
}
__doPostBack解釋:
是一個純粹並且是非常簡單的javascript函數
如以上代碼,如果ASPX頁面有包含asp:LinkButton或者帶有AutoPostBack屬性且其值為true的伺服器控制項時
ASP.NET會自動為頁面產生下面的指令碼
實際上調用__doPostBack函數
也就是將觸發回傳的控制項(第一個參數)及相關參數(第二個參數)付給兩個頁面的隱藏控制項
然後提交表單;
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
function __doPostBack(eventTarget, eventArgument)
{
   if (!theForm.onsubmit || (theForm.onsubmit() != false))
   {
      theForm.__EVENTTARGET.value = eventTarget;
      theForm.__EVENTARGUMENT.value = eventArgument;
      theForm.submit();
   }   

而在後台事件代碼中可以
通過Request.Form[“__EVENTTARGET”]擷取到觸發頁面PostBack的事件來源(控制項的ID)
但Button和ImageButton觸發的PostBack無法通過這種方式擷取到它們的ID

來自http://hi.baidu.com/chen839357/blog/item/42bb9594c12d4047d0135e60.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.