$ .get添加到Button.ClientSideEvents.Click不会在第二次点击时工作

时间:2014-06-13 07:31:09

标签: c# jquery asp.net ajax

string okumagecmisiStr = string.Format("function(s,e){{ $.get('/GetHazirRapor.ashx?RaporTanimi={0}',function(data){{location.href='{1}'}} );  }}", hrt.ID, hrt.WebRaporLink);

ButtonWebRaporAc.ClientSideEvents.Click = okumagecmisiStr;

来自aspx页面代码隐藏的上述C#代码位于回调面板中。加载页面时,它会通过回调代码,将上述功能添加到按钮。它在第一次尝试时工作正常,通过处理程序,然后加载页面(带位置)。但是如果你再试一次,它会跳过处理程序,然后转到页面。

我怎样才能让它每次都进入处理程序?

更新

我继续尝试使用AJAX方法,但是我对C#中这一行的格式感到不满意。

string okumagecmisiStr = string.Format("function(s,e) { $.ajax({ url: '/GetHazirRapor.ashx?RaporTanimi={0}', type: 'GET', success: function(data){ location.href='{1}' }, cache: false })", hrt.ID, hrt.WebRaporLink);

我错过了括号或逗号或其他内容吗?

1 个答案:

答案 0 :(得分:2)

$ .get将缓存结果。所以你需要禁用缓存。我认为将缓存设置为false的唯一方法是使用$ .ajax,如下所示:

$.ajax({
  url: "/GetHazirRapor.ashx?RaporTanimi=",
  "type": "GET",
  success: function(data){
      location.href = ''
  },
  cache: false
});

<强> Upate: 你在函数末尾缺少一个“}”:

function(s,e) {{
  $.ajax({{
     url: '/GetHazirRapor.ashx?RaporTanimi={0}', 
     type: 'GET',
     success: function(data) {{
         location.href='{1}'
     }},
     cache: false
  }})
}}