javascript與asp.net(c#)互相調用方法
更新時間:2009年12月13日 01:43:40 作者:
js與C#之間相互調用的一些方法
1、獲得aspx客戶端請求地址:
<a src= 'http://<%=Request.Url.Host %><%= ResolveUrl("../PayCenter/AlipayAdd.aspx")%>'>地址</a>
2、C#調用客戶端方法:(top.window.document:表父窗體,如果是MainFrame對象在本窗體中,則不加top.window.document)
Js中的方法:
function navurl(url) {
$("#mainFrame",top.window.document).attr("src", url);
}
C#調用:
string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId=");
DocName.NavigateUrl = navUrl + txtDocId.Value.Trim() + "')";
3. C#調用客戶端方法:
page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript'>alert('" + msg.ToString() + "');</script>");
下面要解決的問題如下:
1.如何在JavaScript訪問C#函數(shù)?
2.如何在JavaScript訪問C#變量?
3.如何在C#中訪問JavaScript的已有變量?
4.如何在C#中訪問JavaScript函數(shù)?
問題1答案如下:
javaScript函數(shù)中執(zhí)行C#代碼中的函數(shù):
方法一:
1、首先建立一個按鈕,在后臺將調用或處理的內容寫入button_click中;
2、在前臺寫一個js函數(shù),內容為document.getElementById("btn1").click();
3、在前臺或后臺調用js函數(shù),激發(fā)click事件,等于訪問后臺c#函數(shù);
方法二:
1、函數(shù)聲明為public
后臺代碼(把public改成protected也可以)
public string ss()
{
return("a");
}
2、在 html 里用可以調用前臺腳本
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>
方法三:
<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 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="你要調用的函數(shù)名";
document.form[0].submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用來存儲你要調用的函數(shù) --〉
在.CS里有:
public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根據(jù)傳回來的值決定調用哪個函數(shù)
switch(strFunName)
{
case "enter()":
enter() ; //調用該函數(shù)
break;
case "其他":
//調用其他函數(shù)
break;
default:
//調用默認函數(shù)
break;
}
}
}
public void enter()
{
//……比如計算某值
}
問題2.如何在JavaScript訪問C#變量?
答案如下:
方法一:1、通過頁面上隱藏域訪問 <input id="xx" type="hidden" runat="server">
方法二:1、如后臺定義了PUBLIC STRING N; 前臺js中引用該變量的格式為''或"++"
方法三:1、或者你可以在服務器端變量賦值后在頁面注冊一段腳本
"<script language='javascript'>var temp=" + tmp + "</script>"
tmp是后臺變量,然后js中可以直接訪問temp獲得值。
問題3.如何在C#中訪問JavaScript的已有變量?
答案如下:
方法一:1、前臺使用靜態(tài)文本控件隱藏域,將js變量值寫入其中;2、后臺用request["id"]來獲取值;
方法二:可以用cookie或session
問題4.如何在C#中訪問JavaScript函數(shù)?
答案如下:
c#代碼中執(zhí)行javaScript函數(shù):
方法一:1、
Page.RegisterStartupScript("ggg"," ");
方法二:使用Literal類,然后
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str=" ";
//Literal1.Visible=true;
Literal1.Text=str;
}
復制代碼 代碼如下:
<a src= 'http://<%=Request.Url.Host %><%= ResolveUrl("../PayCenter/AlipayAdd.aspx")%>'>地址</a>
2、C#調用客戶端方法:(top.window.document:表父窗體,如果是MainFrame對象在本窗體中,則不加top.window.document)
Js中的方法:
復制代碼 代碼如下:
function navurl(url) {
$("#mainFrame",top.window.document).attr("src", url);
}
C#調用:
復制代碼 代碼如下:
string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId=");
DocName.NavigateUrl = navUrl + txtDocId.Value.Trim() + "')";
3. C#調用客戶端方法:
復制代碼 代碼如下:
page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript'>alert('" + msg.ToString() + "');</script>");
下面要解決的問題如下:
1.如何在JavaScript訪問C#函數(shù)?
2.如何在JavaScript訪問C#變量?
3.如何在C#中訪問JavaScript的已有變量?
4.如何在C#中訪問JavaScript函數(shù)?
問題1答案如下:
javaScript函數(shù)中執(zhí)行C#代碼中的函數(shù):
方法一:
1、首先建立一個按鈕,在后臺將調用或處理的內容寫入button_click中;
2、在前臺寫一個js函數(shù),內容為document.getElementById("btn1").click();
3、在前臺或后臺調用js函數(shù),激發(fā)click事件,等于訪問后臺c#函數(shù);
方法二:
1、函數(shù)聲明為public
后臺代碼(把public改成protected也可以)
public string ss()
{
return("a");
}
2、在 html 里用可以調用前臺腳本
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>
方法三:
<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 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="你要調用的函數(shù)名";
document.form[0].submit();
}
}
</script>
<INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">
<input type="hidden" name="FunName"> 〈!--用來存儲你要調用的函數(shù) --〉
在.CS里有:
public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根據(jù)傳回來的值決定調用哪個函數(shù)
switch(strFunName)
{
case "enter()":
enter() ; //調用該函數(shù)
break;
case "其他":
//調用其他函數(shù)
break;
default:
//調用默認函數(shù)
break;
}
}
}
public void enter()
{
//……比如計算某值
}
問題2.如何在JavaScript訪問C#變量?
答案如下:
方法一:1、通過頁面上隱藏域訪問 <input id="xx" type="hidden" runat="server">
方法二:1、如后臺定義了PUBLIC STRING N; 前臺js中引用該變量的格式為''或"++"
方法三:1、或者你可以在服務器端變量賦值后在頁面注冊一段腳本
"<script language='javascript'>var temp=" + tmp + "</script>"
tmp是后臺變量,然后js中可以直接訪問temp獲得值。
問題3.如何在C#中訪問JavaScript的已有變量?
答案如下:
方法一:1、前臺使用靜態(tài)文本控件隱藏域,將js變量值寫入其中;2、后臺用request["id"]來獲取值;
方法二:可以用cookie或session
問題4.如何在C#中訪問JavaScript函數(shù)?
答案如下:
c#代碼中執(zhí)行javaScript函數(shù):
方法一:1、
Page.RegisterStartupScript("ggg"," ");
方法二:使用Literal類,然后
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str=" ";
//Literal1.Visible=true;
Literal1.Text=str;
}
您可能感興趣的文章:
- C#后臺調用前臺JS函數(shù)方法
- C#使用Http Post方式傳遞Json數(shù)據(jù)字符串調用Web Service
- 使用C# 的webBrowser寫模擬器時的javascript腳本調用問題
- 淺談C#下winform和JS的互相調用和傳參(webbrowser)
- c#和javascript函數(shù)相互調用示例分享
- Javascript調用C#代碼
- C#后臺調用前臺javascript的五種方法小結
- Javascript 直接調用服務器C#代碼 ASP.NET Ajax實例
- 在C#中調用VBScript、javascript等腳本的實現(xiàn)代碼
- C# javaScript函數(shù)的相互調用
- .net中前臺javascript與后臺c#函數(shù)相互調用問題
- C#調用JS的幾種方法
相關文章
javascript中兼容主流瀏覽器的動態(tài)生成iframe方法
這篇文章主要介紹了javascript中兼容主流瀏覽器的動態(tài)生成iframe方法,需要的朋友可以參考下2014-05-05JavaScript實現(xiàn)讀取與輸出XML文件數(shù)據(jù)的方法示例
這篇文章主要介紹了JavaScript實現(xiàn)讀取與輸出XML文件數(shù)據(jù)的方法,結合實例形式分析了JavaScript基于ActiveXObject實現(xiàn)載入、讀取與輸出xml文件數(shù)據(jù)的相關操作技巧,需要的朋友可以參考下2018-06-06JavaScript實現(xiàn)寫入文件到本地的方法【基于FileSaver.js插件】
這篇文章主要介紹了JavaScript實現(xiàn)寫入文件到本地的方法,結合實例形式分析了基于FileSaver.js插件實現(xiàn)保存文件到本地的相關操作技巧,并附帶FileSaver.js插件完整源碼,需要的朋友可以參考下2018-03-03layui 上傳插件 帶預覽 非自動上傳功能的實例(非常實用)
今天小編就為大家分享一篇layui 上傳插件 帶預覽 非自動上傳功能的實例(非常實用),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JS中利用swiper實現(xiàn)3d翻轉幻燈片實例代碼
大家都知道Swiper(Swiper master)是目前應用較廣泛的移動端網頁觸摸內容滑動js插件。下面這篇文章主要給大家介紹了在JS中利用swiper實現(xiàn)3d翻轉幻燈片的相關資料,文中給出了完整的示例代碼供大家參考學習,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08