C# 更新集合而不回发
在我的应用程序中,我在网格中显示一个记录列表,每个记录都有一个更新记录状态的链接。此网格位于用户控件内 我想在用户单击链接而不进行回发时更新集合 Main.aspx ucFR.ascxC# 更新集合而不回发,c#,jquery,asp.net,C#,Jquery,Asp.net,在我的应用程序中,我在网格中显示一个记录列表,每个记录都有一个更新记录状态的链接。此网格位于用户控件内 我想在用户单击链接而不进行回发时更新集合 Main.aspx ucFR.ascx 公共无效更新状态(int键) { //在此编码以更新集合。 } //ajax调用的Javascript 功能状态图像单击(键){ //使用更新/插入的数据更新网格的ajax调用。 $.ajax({ 类型:“POST”, url:'Main.aspx/updatefstatus', 数据:'{key:'+key+'
公共无效更新状态(int键)
{
//在此编码以更新集合。
}
//ajax调用的Javascript
功能状态图像单击(键){
//使用更新/插入的数据更新网格的ajax调用。
$.ajax({
类型:“POST”,
url:'Main.aspx/updatefstatus',
数据:'{key:'+key+'''}',
....
}
如果我将updatefstatus()移动到Main.aspx并使其保持静态,一切正常。但我希望将此方法保留在用户控件中,以实现代码分离
你能给我一些建议吗?我不需要回发就可以更新收藏
提前感谢我认为没有任何方法可以直接调用用户控件的
updatefstatus
方法,因为它永远不会作为应用程序的入口点公开
不过,为了维护分工和所有这些内容,您可以在Main.aspx中保留静态方法。您可以执行以下操作:
[WebMethod]
public static void UpdateFRStatus(int key)
{
ucFRObject.UpdateFRStatus(key);
}
其中,ucFRObject
是您在Main.aspx
上添加的ucFR
用户控件的某个对象
这与您现在所做的基本相同。如果不进行回发并将其加载回状态,您将无法获得对页面或用户控件的任何引用 Pagemethods适用于页面,而不是usrcontrols。
您可以向pagemethod发送足够的数据来更新给定的条目(例如key和statusname)然后返回数据以更新UI客户端ucFRObject如果执行类似操作,则该对象为空。我不知道您使用的实际变量是什么;这只是我为解释步骤而编写的一个伪变量。如果在主页内创建usercontrol对象,则该对象将始终为空。
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>
[WebMethod]
public static void UpdateFRStatus(int key)
{
ucFRObject.UpdateFRStatus(key);
}