更新集合而不回发

时间:2013-10-31 22:38:29

标签: c# jquery asp.net

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

我想在用户点击链接而不进行回发时更新集合。

Main.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 并使其静态,一切正常。但我想将此方法保留在用户控件中以使代码分离。

如果没有回发,我可以建议我更新收藏品。

先谢谢

2 个答案:

答案 0 :(得分:1)

如果不进行回发并将其加载回状态,您将无法获得对The Page或usercontrol的任何引用。

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

答案 1 :(得分:0)

我认为您无法直接调用用户控件的UpdateFRStatus方法,因为它永远不会作为应用程序的入口点公开。

但是,为了保持分工和所有这些东西,你可以在Main.aspx中保留静态方法。您可以执行以下操作:

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

ucFRObject是您在ucFR添加的Main.aspx用户控件的某个对象。

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