首先讲一下需求:  需求是在页面几张图片和一个gv ,当鼠标经过的时候,根据图片ID,绑定gv
 然后 我在图片的onmouseover中想调用后台的绑定gv的方法 public void Banding(string id);  参数是图片的ID,方法是根据ID绑定gv
      public   string  Banding(string id)
        {
            DataSet ds = wh_newsBll.GetList(8, "type_id=" + id, "news_time");
            this.gvShowNews.DataSource = ds.Tables[0];
            this.gvShowNews.DataBind();
        } 然后我就找 如何在js里调用后台带参数的方法  
结果找到的答案最多的就是1protected string CsharpVoid(string strCC)
2{
3    strCC = "你好!" + strCC;
4   return strCC;
5}前台JS
1 function Init()
2 {
3    var v = "中国";
4    var s = '<%=CsharpVoid("'+v+'") %>';
5    alert(s);
6 }
可是这样 要么后台是有返回值的方法 要么就是 传递的参数就是   +v+  根本不行  (或者是我没有试出来)
然后我就开始用ajax 在js里调用后台方法 大体方法是  
1  该方法为public
2  该方法为静态方法
3 scriptManager的EnablePageMethods属性为true
4 方法上添加[webMethod]然后这样我试了试  一直提示我调用的那个方法找不到 后来我又找自己
原因是要在类 前面加[System.Web.Script.Services.ScriptService] 前台才能访问到
(ps: 你说那些人 要是给个解决方法就给的详细点 老弄点含糊不清的东西)
然后继续调用的时候 就做不下去了  
static方法是静态的 你没法给它指定this
也就是说 在static里如何绑定gv控件
我的Banding方法修改为
       public static void Banding(string id) 
        {
            DataSet ds = wh_newsBll.GetList(8, "type_id=" + id, "news_time");
            this.gvShowNews.DataSource = ds.Tables[0];
            this.gvShowNews.DataBind();            
        }
编译不通过  this无法调用
求解  我该如何继续
(找答案的过程中 我发现很多人 都是说了一点  然后其他的都让你怎么怎么着  , 我们项目经验少所以才需要指点)

解决方案 »

  1.   


    ajaxpro是第三方控件吗   调用的饿后台的方法也必须是static的么 
    如果是static方法 怎么在static方法里绑定控件?
      

  2.   

    自己手写的 ajax 调用后台有吗
      

  3.   

    ajax 可以利用地址栏传参的方式请求到本页面,你可以在pageload事件里面判断这个参数,然后调用绑定的方法。不知道这个思路是否成立。lz可以去试验下
      

  4.   

    楼主可以试下ajaxpro这个第三方ajax插件  与static 无关
       最好用jquery 不必和数据源控件打交道
      

  5.   

    jquery ajax         
      

  6.   

    http://topic.csdn.net/u/20100820/14/c5aa1af0-4b35-4651-8d13-3fc4df5c48c0.html
    可以参照这个帖子
      

  7.   

    前台写一个ajax方法传递一个参数作为这个方法的标识,get或post方式提交到你需要的页面
    然后在后台pageload里根据传递的参数进行判断是否执行某方法。
    例如:
    前台:
    function ajaxSubmit()
    {
        var param="T";
        var imgId=$("#imageId").val();
        $.post("test.aspx",{param:param,imgId:imgId},
        function(data)
        {
           alert(data.toString());
        });
    }
    后台
    pageload里:
    if(Request.Form["param"]!=null&&Request.Form["param"].ToString()!="")
    {
        AjaxSubmit(Convert.ToInt32(Request.Form["imgId"].ToString()));
    }需要执行的函数:
    private void AjaxSubmit(int imgId)
    {
        do something;
    }