在我的应用程序中,我显示网格中的记录列表,每条记录都有一个链接来更新记录的状态。此网格位于用户控件内。
我想在用户点击链接而不进行回发时更新集合。
[WebMethod]
public static void UpdateFRStatus(int key)
{
ManagePartnerConfigurationNew pageObj = new ManagePartnerConfigurationNew();
pageObj.UpdateFRStatusforAjax(key);
}
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 并使其静态,一切正常。但我想将此方法保留在用户控件中以使代码分离。
如果没有回发,我可以建议我更新收藏品。
先谢谢
答案 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
用户控件的某个对象。
这与你现在正在做的事情基本相同。