javascript与cs代码互相调用 asp.net中前台javascript与后台C#交互 这里主要包括了javascipt与后台CS代码四种方法互调(其中包括函数与变量的访问)

时间:2022-08-31 08:01:48

这里主要包括了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;