//aspx
<script type="text/javascript">
function linkRenderer(value, meta, record) {
var customerUrl = '<%=GetPageUrlWithQuery(Pages.CustomerDetails) %>';
return String.format("<a href='{0}'>{1}-{2}</a>",customerUrl, value, record.id);
}
</script>
//aspx.cs
public string GetPageUrlWithQuery(Pages pageType, string param = null){
//..................
}
如何向'<%=GetPageUrlWithQuery(Pages.CustomerDetails) %>'
方法传递javascript参数record.id
?
发布于 2011-08-01 16:38:07
如果我对您的问题理解正确的话,您正在尝试将一个javascript参数传递给服务器端方法。可以这样做的方法是使用到服务器的ajax post。
$.ajax(
{
url: url,
type: "GET",
data: { id: record.Id },
dataType: "json",
success: function(response, status) {
//Do some work
}
}
);
发布于 2011-08-01 16:37:27
您不能这样做,因为ASP.NET页面的生命周期。
对C#代码的嵌入式调用:
<%=GetPageUrlWithQuery(Pages.CustomerDetails) %>
在页面呈现时,在发送到浏览器之前,在服务器上执行。
在服务器处理完成后,Javascript代码在浏览器内的客户机上执行。到那时还不能访问您的C#方法(至少不能直接访问)。
如果希望从Javascript调用服务器端代码,则需要使用Ajax (或类似的东西,但Ajax是最简单的)。
不过,如果可以的话,可以在服务器端完成所有这些工作,因为与在服务器上处理页面期间完成所有工作相比,通过Ajax回调服务器的开销很大。
发布于 2011-08-01 16:39:00
我不认为有一种简单的方法可以做到这一点,GetPageUrlWithQuery
函数将在服务器上运行,因此它将无法访问JavaScript变量。
如果必须这样做,我通常会将JavaScript变量赋给一个隐藏字段,然后在服务器端函数中取出隐藏字段的值。
https://stackoverflow.com/questions/6895896
复制相似问题