代码之家  ›  专栏  ›  技术社区  ›  Jack Ryan

是否有JQuery Table插件支持HTML表作为AJAX数据源

  •  3
  • Jack Ryan  · 技术社区  · 16 年前

    5 回复  |  直到 16 年前
        1
  •  1
  •   Brian    16 年前

    看一下 http://www.datatables.net/

    它也很好!

        2
  •  0
  •   p.campbell    16 年前

    我认为你最好的选择是创建一个控制器操作,返回一个包含你的表的局部视图。局部视图可以包含您想要的任何基于JavaScript的表/网格。此解决方案完全不依赖于任何特定的网格/表实现。

    例如,假设你有一个强类型的类型局部视图

    // For paging support, you would probably need to modify this action to accept
    // a parameter that could be used to tell which records to retrieve.
    // This would also require the appropriate route. However, this is beyond
    // the scope of this example.
    public PartialViewResult List()
    {
      // get the collection of stuff that you want to display
      var items = this.itemRepository.GetItems();
    
      // return the partial
      return PartialView("FooList", items);
    }
    


    在您看来,在将要使用此部分的地方,您将需要以下内容。..

    <!-- this <div> will contain the partial, which we will be able to update via AJAX -->
    <div id="FooList">
        <%-- this assumes a collection of "items" is available in Model.Items --%>
        <% Html.RenderPartial("FooList", Model.Items); %>
    </div>
    
    <!-- use an AJAX ActionLink to update the table -->
    <%=
        Ajax.ActionLink
        (
            "Click Me to Update the Table using AJAX!",
            "List",
            new AjaxOptions()
            {
                HttpMethod = "GET",
                LoadingElementId = "FooList"
            }
        )
    %>
    

    ASP.NET MVC AJAX Helper 创建一个链接,该链接将生成对控制器中List操作的AJAX GET请求。此外,通过定义 正在加载ElementId <div id=“FooList”>

    当用户点击该链接时,AJAX请求将调用您的List操作。您的list操作只是返回部分视图FooList.ascx的呈现内容。id=“FooList”的div的现有内容将被从AJAX请求中检索到的内容替换。在上面的示例中,控制器操作将始终选择相同的数据,这不是您真正想要的。在真实场景中,您必须修改控制器操作,以便为您的局部视图检索适当的数据。在不了解实现细节的情况下,我无法为您提供一种有效的方法来处理这个问题。

    如果你不想使用链接,那就看看Ajax生成的HTML和JavaScript。ActionLink助手,并根据您的需求进行调整。例如,构建自己的自定义助手,或者只是手动编写JavaScript。

    最后,不要忘记包含MVC AJAX JavaScript源文件。我建议把它们放在你的主页上。例如:

    <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
    
        3
  •  0
  •   Jack Ryan    16 年前

    从那以后,我发现 ingrid 并将其作为潜在的解决方案抛弃。虽然看起来和感觉都很重,但它似乎做了我想做的事。我想我会看看这个答案是如何投票的。

        5
  •  0
  •   r00fus    16 年前

    如果你这样做,例如,你可以使用ajax调用注入html表(如果需要),然后对生成的html表应用flexigrid()或jggrid()。