如何在父页面ASP.Net中调用UserControl方法

时间:2013-10-31 20:09:51

标签: asp.net webusercontrol

我在页面内有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)
{
    .....
}

Page1.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(键)给出 ucFR 为空的错误。

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

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