这里主要包括了javascipt与后台CS代码四种方法互调(其中包括函数与变量的访问)。
1.JavaScript访问C#函数
javaScript函数中执行C#代码中的函数:
方法一:
a、比如说新建一个ID为“btn”的Button,在后台cs代码中将调用或处理的内容写入button_click中;
b、在HTML前台页js中调用:document.getElementById("btn").click();该行code调用后台的button_click事件。
方法二:
a、直接在HTML前台页面中调用后台代码,如有以下后台代码:
public string GetValue()
{
return "return value from .cs code";
}
b、接下来在HTML页面中调用后台方法,如下代码
function ShowValue()
{
var retVal=“<%=GetValue()%>”; //后台代码写在<%%>中
window.alert(retVal);
}
2.JavaScript访问C#变量
方法一:
a、通过页面上隐藏域访问,可以在后台把c#变量值保存到隐藏文本域当中。
<input id="xx" type="hidden" runat="server">
b、然后在前台javascript当中直接取隐藏文本域的值。
document.getElementById('xx').value
方法二:
a、在服务器端变量赋值后在页面注册脚本
Page.RegisterStartScript(" ","<script language='javascript'>var vary=" + value + "</script>");
value是后台变量,然后javascript中可以直接访问vary值,它的值就是后台变量value的值,这种方式只不过是能过一种间接的方式来访问c#变量。
3.C#中访问JavaScript的变量
方法一:
a、将javascript变量值写入到前台HTML页面使用静态文本控件隐藏域当中;
b、后台用Request["id"]来获取值;
方法二:
可以用cookie或session
4.C#中访问JavaScript函数
方法一:
a、Page.RegisterStartupScript("function","<script>你要调用的javascript函数名称;</script>");
方法二:
b、使用LiteralControl,如下在Button_Click中调用javascript函数
public void Button_Click(object sender,System.EventArgs e)
{
LiteralControl li = new LiteralControl();
li.Text="<script>要调用的javascript函数名称;</script>";
Controls.Add(li);
}
asp.net中前台javascript与后台C#交互
使用Ajax开发框架,后台方法定义前添加[AjaxPro.AjaxMethod],然后就可以在前台js脚本中调用后台C#函数……
方法一:使用Ajax开发框架,后台方法定义前添加[AjaxPro.AjaxMethod],然后就可以在前台js脚本中调用后台C#函数。
方法二:后台方法声明为public或者protected,然后前台使用js脚本进行调用。
以下是代码片段:
.cs
public string Str()
{
return "javaScript函数中执行后台C#方法..";
}
.aspx
<script type="text/javascript">
var a = "<%=Str()%>";
alert(a);
</script>
方法三:使用Session变量
以下是代码片段:
.cs
if (Session["siteName"] == null)//判断是否存在指定Key值的Session变量
Session["siteName"] = "";//如果不存在则创建Session变量
//给Session["siteName"]变量赋值
.aspx
var siteName="<%=Session["siteName"] %>";
方法四
以下是代码片段:
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" style="display:none;"/>
<input type="button" id="btnSave " value="保存" onclick="GetBehind ();return false;" />
.aspx.cs
<script type="text/javascript">
//调用后台方法
//使用这种方式调用后台代码,可以在调用之前在前台做一些验证
function GetBehind() {
document.getElementById("Button1").click();
}
</script>
.cs
protected void Button1_Click(object sender, EventArgs e)
{}
如何在后台C#代码中执行javaScript函数
方法一:void Page.RegisterStartupScript(string key,string script);
方法二:使用隐藏域或者Literal控件,在前台使用js脚本把一些js函数控制的值写进隐藏域或者Literal控件,然后前台使用Hidden.Value或者Literal.Text读取前台值。
以下是代码片段:
.aspx
function GetTitleID(obj)
{
sTitleID=obj
if(sTitleID!=null)
document.getElementById("HiddenField1").value=type+','+sTitleID;
else
document.getElementById("HiddenField1").value=type+',0';
}
.cs
string hiddenValue = this.HiddenField1.Value;