0

我在一个页面中有 4 个用户控件,并且该页面位于母版页内。当在用户控件中单击链接时,该控件会触发对驻留在页面中的 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)
{
    .....
}

第1页.aspx

[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(key)给出ucFR为空的错误。

问题 2:我不确定这种行为的正确方法是什么。

我希望已经解释了我的问题。

提前致谢。

4

1 回答 1

0

ASP.NET AJAX 页面方法是静态的,不能访问页面的控件。

即使您正在实例化一个Page1对象,它也没有对承载用户控件的页面中的控件和页面方法本身的引用。

将 ASP.NET AJAX 页面方法视为由页面托管的 Web 服务,但仅在逻辑写入页面本身的意义上托管。它不直接连接到上下文中的页面,因此我建议仅使用它来获取数据,然后在用户控件中引发页面可以订阅和响应的事件。

于 2013-10-31T20:38:32.163 回答