0

在我的应用程序中,我在网格中显示了一个记录列表,每条记录都有一个更新记录状态的链接。此网格位于用户控件内。

当用户单击链接而不进行回发时,我想更新集合。

主.aspx

[WebMethod]
public static void UpdateFRStatus(int key)
{            
    ManagePartnerConfigurationNew pageObj = new ManagePartnerConfigurationNew();
    pageObj.UpdateFRStatusforAjax(key);
}

ucFR.ascx

public void UpdateFRStatus(int key)
{
    //Code here to update the collection.
}

//Javascript for ajax call
<script>
function statusImageClick(Key) {
        
        //ajax call to update the grid with the updated/inserted data.
        $.ajax({
            type: "POST",
            url: 'Main.aspx/UpdateFRStatus',
                 data: '{key : "' + Key + '"}',
       ....
 }
</script>

如果我将UpdateFRStatus()移动到Main.aspx并使其成为静态一切正常。但我想将此方法保留在用户控件中以进行代码分离。

您能否建议我以任何方式更新集合而不进行回发。

提前致谢

4

2 回答 2

2

如果不进行回发并将其加载回状态,您将不会获得对页面或用户控件的任何引用。

Pagemethods 适用于页面而不是 usrcontrols。您可以向页面方法发送足够的数据以更新给定的条目(例如键和状态名),然后将数据返回到更新 UI 客户端

于 2013-10-31T23:28:21.857 回答
1

我不认为有任何方法可以直接调用UpdateFRStatus用户控件的方法,因为它永远不能作为应用程序的入口点公开。

不过,为了维护分工和所有这些东西,您可以将静态方法保留在 Main.aspx 中。您可以执行以下操作:

[WebMethod]
public static void UpdateFRStatus(int key)
{
    ucFRObject.UpdateFRStatus(key);
}

您添加的用户控制ucFRObject对象在哪里?ucFRMain.aspx

这与您现在正在做的事情基本相同。

于 2013-10-31T23:04:12.000 回答