2016-12-05 62 views
0

让我们想象一下这样的情况:存储从Viewbag内容到本地的jQuery数组或对象

我有一个ViewBag动态对象基本上是一个列表并祝一些结果;

方案1:

  1. 用户1进来并且填充ViewBag.Products具有50级里面的物品的列表对象;

方案2:

  • 用户2进来并填充ViewBag.Products用的,它们比以前50米的人的用户的不同50个NEW项目的列表对象1.
  • 现在,当两个用户得到的结果显示到他们的页面,它位于/分析/索引< - 视图

    我帮助他们,使他们能够通过一定的财产梳理该名单交流姑娘位于物体内部是这样的:

    public JsonResult GetSortedBySales() 
        { 
         var list = lista.OrderByDescending(x => x.SaleNumber).ToList(); 
         return Json(list, JsonRequestBehavior.AllowGet); 
        } 
        public JsonResult GetSortedByFeedback() 
        { 
         var list = lista.OrderByDescending(x => x.Feedback).ToList(); 
         return Json(list, JsonRequestBehavior.AllowGet); 
        } 
    

    正如你可以看到这会产生这样一个问题:

    是添加它自己的项目列表是将要显示的项目的最后一个用户到用户1时,他试图整理列表,因为列表现在充满了用户#2的项目...

    列表中充满了来自eBay API的项目,因此我无法保证完整性和唯一性的数据给每个用户...

    我以为我能在这里做什么?是否我可以将这些项目从列表中以某种方式存储到本地jquery数组中,然后从该本地数组中执行排序,以便每个jquery数组对本地浏览器中的每个用户都是本地的,并且不会混合数据...

    你们明白我在这里想达到什么吗?

    如果我的英语不好,我很抱歉,我尽力解释我的问题。

    编辑:这里是我想要达到

    基本上我有,用户进行基于特定关键字的检索易趣物品形式更多的数据。在通过http请求进行搜索后,我会以一种方式将结果显示给他们,以便他们可以选择表格中的所有产品,然后分析这些所选产品。

    然后,他们与另一个页面与分析数据一起传输,并将结果显示在名为“lista”的列表对象中。

    “lista”列表总是根据用户在页面上通过我刚刚解释的过程在网页上搜索的内容填充不同。

    因此,“lista”对象总是充满新数据,并且当用户执行列表“lista”中的数据排序时,如果2个用户执行分析数据,如场景1和2如上所述。

    这有帮助吗?

    编辑2:

    这里是什么,我彪

    步骤1的图形解释:

    enter image description here

    第2步:

    enter image description here

    附: “lista”列表被声明为静态,是什么导致了这个问题?再次

    编辑:

    好了,所以,大家好已经找到一种方法,这样,当我对它进行排序的数据不会改变。而不是做一个jQuery后,我进行基于我添加到我的表TR两个额外的属性数据的排序 - 销售和反馈,然后进行排序它像以下:

    $(".feedbackClick").click(function() { 
        var $wrapper = $('#tableSellers'); 
    
        $wrapper.find('.test').sort(function(a, b) { 
         return +$(b).attr('feedback') - +$(a).attr('feedback'); 
        }).appendTo($wrapper); 
    }); 
    

    这本地jQuery中从而对数据进行排序在多个用户执行搜索时没有数据丢失。

    +0

    你的英语基本上很好。不过,你能否详细解释一下你想要达到的目标? – ic3man7019

    +0

    @ ic3man7019 ty。是的......我将编辑我最初的问题 – User987

    +0

    @ ic3man7019我编辑了我的第一个问题的更多细节,这是否有帮助? :) – User987

    回答

    1

    P.S. “lista”列表被声明为静态,是什么导致了这个问题?

    是的。那就是问题所在。

    您几乎从不在网站中使用静态变量,因为这些变量最终将在所有用户之间共享。

    +0

    好吧,我现在明白了 - 我会记住这一点。 当我做一个公共静态列表 lista {get; set;} - 当我需要使用它时,它可以在整个类/控制器中使用... 但是,还有什么其他方式在类中有1个属性跨班/控制器以多种方式提供? – User987

    +0

    实例变量,a.k.a. [Fields](https://msdn.microsoft.com/en-us/library/ms173118(v = vs.80).aspx)。 –

    相关问题