当前位置:编程学习 > C#/ASP.NET >>

脚本中调用后台带参函数

    脚本中当点击一个<p></p>标签时调用后台一个带参数函数,该函数在当前页面(aspx)的后台,比如demo.aspx,那么后台函数就在demo.aspx.cs中(用过VS的都知道吧).而且该函数是非静态的。
    网上查了很多资料,都没找到解决的方案,
有的说用JQUERY的$.ajax()调用,但是貌似只能调用静态函数吧
用<%=function()%> 又不能传递参数,网上说的传参的形式我都试过,不行,参数根本就没传过去。
纠结啊,弄了几天了都没解决,求大神指教。~~~~  内牛满面

关键:1.函数在本页面的后台文件CS中
      2.函数带有一个参数,返回值可以有可无

--------------------编程问答-------------------- 做一个服务器控件,button什么的,hide,然后getelement,click什么的服务器控件在后台,再func什么的,参数传递,可以设置value什么的,大概就是什么的,如果你不知道我说什么的,我也不知道什么的 --------------------编程问答-------------------- JavaScript 调用 ASP.NET 服务器端方法的最简单的方法 --------------------编程问答-------------------- --------------------编程问答-------------------- 补充一下,后台函数中有对页面中 服务器控件比如sqldatasource的处理 --------------------编程问答-------------------- $.ajax() 调用一个 地址demo.aspx,在 demo.aspx.cs里面 处理调用的函数。 --------------------编程问答-------------------- 楼上兄弟的方法我试过  调用的只能是静态static   而static 函数 不能处理 服务器控件 --------------------编程问答-------------------- 非静态也可以啊
ajax请求"x.aspx?id=参数"

x.aspx里
if(Request.QueryString["id"]!=null)
{
 //执行非静态的方法
} --------------------编程问答--------------------
引用 7 楼  的回复:
非静态也可以啊
ajax请求"x.aspx?id=参数"

x.aspx里
if(Request.QueryString["id"]!=null)
{
 //执行非静态的方法
}
--------------------编程问答-------------------- 有例子吗?
$.ajax({
                type: "post",
                url: "../Back/UserManage_SchoolLoad.aspx",
                data: { Code: UnitName },
                success: function (data) {
         是这样吗? --------------------编程问答--------------------

<head>
  <title></title>
  <script>
    function myfunction() {     
      var ajax = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
      ajax.open("GET", "demo.aspx?id=xxxx", true);
      ajax.onreadystatechange = function () {
        if (ajax.readyState == 4) {
          if (ajax.status == 200) {
            alert(ajax.responseText);
          }
        }
      }
      ajax.send(null);
    }</script>
</head>
<body>
  <form id="form1" runat="server">
  <p onclick="myfunction()">点击我</p>
  </form>
</body>
</html> 



demo.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
  if (Request.QueryString["id"] != null)
  {
    doIt(Request.QueryString["id"]);
  }
}
void doIt(String x)
{
  Response.ClearContent();
  Response.Write("你的参数:" + x);
  Response.End();
}
--------------------编程问答-------------------- post方法

<%@ Page Language="C#" EnableViewState="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<head>
  <title></title>
  <script>
    function myfunction() {
      var sendData = "A=aaaa&B=" + encodeURIComponent("中文内容");
      var ajax = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
      ajax.open("POST", "demo.aspx?id=xxxx", true);
      ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      ajax.setRequestHeader("Content-length", sendData.length);
      ajax.setRequestHeader("Connection", "close");
      ajax.onreadystatechange = function () {
        if (ajax.readyState == 4) {
          if (ajax.status == 200) {
            alert(ajax.responseText);
          }
        }
      }
      ajax.send(sendData);
    }</script>
</head>
<body>
  <form id="form1" runat="server">
  <p onclick="myfunction()">点击我</p>
  </form>
</body>
</html> 


protected void Page_Load(object sender, EventArgs e)
{
  if (Request.QueryString["id"] != null)
  {
    doIt(Request.QueryString["id"]);
  }
}
void doIt(String x)
{
  Response.ClearContent();
  Response.Write("你的参数:" + Request.Form["A"] + "," + Request.Form["B"]);
  Response.End();
} --------------------编程问答-------------------- 必须在Page_Load里吗?  
因为调用的是当前页面的后台文件,请求的时候Page_load函数会执行吗?  当前页面不是已经加载过了吗 --------------------编程问答-------------------- ajax就是一种请求,跟你自己从浏览器里面访问是完全一样的道理。Page_load函数会执行 --------------------编程问答-------------------- 我调试的时候怎么弹出这个啊:
--------------------编程问答-------------------- 你是本页的ajax调用本页的程序吧?
你的意思是使用UpdatePanel 控件的样子吧 --------------------编程问答-------------------- Response.ClearContent();是必须的 --------------------编程问答-------------------- 调了半天还是不行 我具体说下问题吧:
UpdatePanel用了的  里面放了一个gridview ,外面放了一个sqldatasource

后台处理函数是动态绑定gridview,现在在脚本中已经取到了要传递的值,就是点击<p><p>元素取到的值,后台函数根据这个值动态改变sqldatasource的seleccommand属性,这样就可以实现gridview动态绑定。
现在问题就是 不知道如何调用后台函数,这个函数肯定不能写到其他页面,因为对当前页面控件进行操作的。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,