我在页面内有4个用户控件,页面在母版页内。 当在User控件内部单击链接时,会触发对驻留在Page中的Web方法的javascript Ajax调用。然后该页面调用是用户控制的方法。
function statusImageClick(Key) {
//ajax call to update the grid with the updated/inserted data.
$.ajax({
type: "POST",
url: 'Page1.aspx/UpdateFRStatus',
data: '{key : "' + Key + '"}',
....
}
public void UpdateFRStatus(int key)
{
.....
}
[WebMethod]
public static void UpdateFRStatus(int key)
{
Page1 pageObj = new Page1();
pageObj.UpdateFRStatusforAjax(key);
}
private void UpdateFRStatusforAjax(int key)
{
ucFR.UpdateFRStatus(key);
}
问题1: ucFR.UpdateFRSTatus(键)给出 ucFR 为空的错误。
问题2:我不确定这种行为的正确方法应该是什么。
我希望已经解释了我的问题。
提前致谢。
答案 0 :(得分:0)
ASP.NET AJAX页面方法是静态的,无法访问页面的控件。
即使您正在实例化Page1
对象,它也没有对托管用户控件和页面方法本身的页面中的控件的引用。
将ASP.NET AJAX页面方法视为由页面托管的Web服务,但仅在逻辑写入页面本身的意义上托管。它没有直接连接到上下文中的页面,因此我建议仅使用它来获取数据,然后在用户控件中引发页面可以订阅并做出反应的事件。