Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新集合而不回发_C#_Jquery_Asp.net - Fatal编程技术网

C# 更新集合而不回发

C# 更新集合而不回发,c#,jquery,asp.net,C#,Jquery,Asp.net,在我的应用程序中,我在网格中显示一个记录列表,每个记录都有一个更新记录状态的链接。此网格位于用户控件内 我想在用户单击链接而不进行回发时更新集合 Main.aspx ucFR.ascx 公共无效更新状态(int键) { //在此编码以更新集合。 } //ajax调用的Javascript 功能状态图像单击(键){ //使用更新/插入的数据更新网格的ajax调用。 $.ajax({ 类型:“POST”, url:'Main.aspx/updatefstatus', 数据:'{key:'+key+'

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

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

Main.aspx ucFR.ascx
公共无效更新状态(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);
}