asp.net中前台JavaScript库调用后台C#变量和有参函数方法

原创 2016年05月31日 11:29:24

最近在做项目时,遇到了js库里调用后台的变量和函数的问题,一开始不知道咋办,google了很多。

1.封装成JavaScript库,其中调用后台C#变量:

     网上有三种基本方法: 
方法一:1、通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server" > 
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为 ' <%=n% > '或"+ <%=n% >+" 
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本 
" <script language= 'javascript ' >var temp=" + tmp + " </script >" 
tmp是后台变量,然后js中可以直接访问temp获得值。 

  经过测试,方法不起作用;方法三在html中注册一段脚本,测试可行的是:

<script type="text/javascript" language="javascript">        
          var v1= "<%=a%>";
          var v2= "<%=b%>";
          var v3= "<%=c%>";
          var v4= "<%=d%>";
          var v5= "<%=e%>";
    </script>

这样到js脚本中就可以直接调用v1,v2,v3,v4,v5等。

2.封装成JavaScript库,其中调用后台C#中有参函数:

之前网上很多的做法如下:

 function UploadToDB(fName) {
            rst = '<%= UploadToDB("' + fName + '") %>';
            UploadToDB = rst;
        }

fName无法传递到后台,后台获取的值仍然是“+ fName +”。

Web运行过程:
【转】分清楚客户端和服务端,var  value=<% =Ceshi(xValue) %>或者var  value= ’<% =UploadToDB(“‘+xValue+’”) %>‘都是无法将前台值传到后台的里面的代码是在服务端执行的,执行时间是客户端页面加载之前,那时js根本还未执行,所以没有js变量。

对于调用C#函数,网上更多的人推荐使用AJAX,个人觉得能用AJAX解决的,一般方法也是可以的,可能稍微复杂点罢了。对于无参函数,相对简单,网页上有好几种方法:

方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 
2、在前台写一个js函数,内容为document.getElementById("btn1").click(); 
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:在html里用 <%=fucntion()% >可以调用前台脚本;

方法三:doPostBack()

方法四:隐式控件;

当有参数传递,甚至有返回值时,就显得比较麻烦了,这里化繁求简,第一种和第四种方法合并,用隐式控件传值【转】:

 HTML中JS如下:

<pre name="code" class="javascript">function upload(fid) {
            var id = document.getElementById("ctl00_ContentPlaceHolder1_Id");
            var btn1 = document.getElementById("ctl00_ContentPlaceHolder1_Btn1");
             id.value = fid;
             btn1.click();
             return id.value;
        }
     </script>



HTML中需要添加一下:

<asp:HiddenField ID="Id" runat="server" Value="1"/> 
        <div style="display:none;">      
        <asp:Button ID="Btn1" Width="0" runat="server" Text="" OnClick="UploadToDB" />       
        </div>  
后台C#UploadToDB函数:

<span style="font-size:18px;">//public int UploadToDB(string fId)
 public void UploadToDB(object sender, EventArgs e)
    {
        int rst = 0;
        string fId =this.Id.Value; //隐式控件传递值
//return rst;
this.Id.Value =rst;
}</span>


js脚本中就可以直接调用C#中的变量或者有参函数:

webObj.HttpAddPostString("id", v1);
alert(getGoodsList(returnValue));


总结:以上只是鄙人初识asp.net的见解,还请大牛多多指导,检查提出意见。( ⊙ o ⊙ )!,勇士夺得西部冠军了(10,1-3逆转)。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

asp.net中前台JavaScript库调用后台C#变量和有参函数方法

最近在做项目时,遇到了js库里调用后台的变量和函数的问题,一开始不知道咋办,google了很多。 1.封装成JavaScript库,其中调用后台C#变量:      网上有三种基本方法:  方法一:1...

ASP.NET后台中调用前台Javascript函数的几种方法

做web开发,用的技术是aspx.net,可是由于比较习惯于ASP现在做起来,觉得非常别扭,原因在于有很多功能其实在前台可以处理的,但是因为用到了很多webcontrol,导致不断postback。如...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

ASP.Net前台调用后台变量

Net前台调用后台变量  1.Asp.Net中几种相似的标记符号: 解释及用法  答: : 是在绑定控件DataBind()方法执行时被执行,用于数据绑定 ...

Asp.Net前台调用后台变量

1.Asp.Net中几种相似的标记符号: 解释及用法 答: : 是在绑定控件DataBind()方法执行时被执行,用于数据绑定 如: : 在程序执行时被调用,可以显示后台变量值 如: *...

Asp.Net前台调用后台变量

1.Asp.Net中几种相似的标记符号: 解释及用法答: : 是在绑定控件DataBind()方法执行时被执行,用于数据绑定如: : 在程序执行时被调用,可以显示后台变量值如:*.aspx中: *.c...

ASP.Net前台调用后台变量的方法

gridview行绑定调用后台方法   2009-06-10 09:55:48|  分类: 编程荟萃 |  标签: |字号大中小 订阅 Gr...
  • yl_99
  • yl_99
  • 2011-12-01 16:07
  • 5796

ASP.NET,C#后台调用前台javascript的五种方法

C#后台调用前台javascript的五种方法 由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件。在网...

JavaScript 调用后台方法及变量

一,后台方法: protected string CsharpVoid(string strCC) { return strCC; } javascript 调用    var s =...
  • fjyts
  • fjyts
  • 2011-09-14 15:52
  • 2724

JS 之 前台调用后台变量和方法

在我们平时的网站开发过程中,并不是所有的网页都是后台查询出一个DataTable或者List然后绑定到DataGrid上。我们可能还会遇到前台需要后台的某一个变量,或者前台某个显示的地方需要调用一下后...

.Net前台调用后台变量

1.Asp.Net中几种相似的标记符号: 解释及用法 答: : 是在绑定控件DataBind()方法执行时被执行,用于数据绑定 如: : 在程序执行时被调用,可以显示后台变量值 如: *....
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)