美元.Button.ClientSideEvents.Click在第二次点击时不起作用

本文关键字:不起作用 第二次 Button ClientSideEvents Click 美元 | 更新日期: 2023-09-27 18:08:21

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;

上面的c#代码来自aspx页面的代码隐藏在callbackpanel中。当页面加载时,它将通过回调代码,将上述函数添加到按钮中。它在第一次尝试时工作良好,通过处理程序,然后加载页面(带有location.)。但如果您尝试再次执行此操作,它将跳过处理程序,直接跳转到该页。

我如何使它每次都进入处理程序?

更新:

我继续尝试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);

我是不是少了一个括号或逗号或什么?

美元.Button.ClientSideEvents.Click在第二次点击时不起作用

$。Get将缓存结果。因此,您需要禁用缓存。我认为将缓存设置为false的唯一方法是使用$。而不是像这样:

$.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
  }})
}}