JQuery GridView控件

时间:2009-04-09 00:08:59

标签: c# asp.net jquery gridview

有这样的事吗?

我正在寻找的是一个控件,它将成为客户端,具有GridView的Edit,Cancel行功能。

我希望用它来收集用户的数据,然后在用户输入数据后保存在服务器上。

编辑:

感谢所有建议。在我深入研究并花时间学习这些框架之前,我想问你们所有人。

你们所有人似乎都使用ASP.net MVC,并提到这些工具包很好用。但是,我使用ASP.net网络表单。这些框架是否与ASP.net的旧版本相得益彰?

9 个答案:

答案 0 :(得分:8)

客户端框架

除了jqGrid之外,我最近还在玩其他几个javascript框架网格:

  1. Flexigrid:基于jQuery,没有 编辑功能,但有计划。

  2. Ext's GridPanel:Ext js是 另一个javascript框架 与jQuery接口。

  3. YUI's DataTable:雅虎用户 接口(YUI)是另一个 具有可编辑网格的框架 控制。

  4. 这些都是客户端组件:它们在用户的浏览器中运行,与服务器代码断开连接。像Tracker1和其他几个人写的那样,你必须自己编写Ajax方法来将客户端网格连接到服务器,或者你可以尝试利用现有的包装器,例如:

    服务器端选项

    1. Coolite's Ext wrappers for .NET

    2. 其中一个正在进行的YUI .NET包装器库(YuiDotNet或Yui.NET)。我认为其中任何一个都没有实现DataTable的包装,但它们可能会告诉你这样做的方法。

    3. 连接客户端和服务器

      如果你没有使用过很多Ajax,或者对这些javascript框架做了很多工作,那么请准备好一些学习曲线:当你开始使用它们时,你需要时刻记住发生的事情。在服务器上以及客户端上发生了什么(以及何时!)。

      如果你使用我上面列出的一个直接javascript库,而不是.NET包装器,你必须编写一个服务器端方法来处理数据提交并使用你选择的技术将它暴露给客户端(MVC的JsonResult控制器动作,建立WebMethods / ScriptMethods等)。

      相关的Stack Overflow问题

      Using ExtJS in ASP.NETReturning data from ASP.net to an ExtJS Grid - 这些都集中在Ext的控件上,但答案包含很多关于将新一代javascript框架控件连接到服务器应用程序的一般信息。

      Good Asp.Net excel-like Grid control - 您可能也对这个问题的答案感兴趣,特别是因为它听起来像您想要强大的编辑功能。

答案 1 :(得分:6)

是。 jqGrid效果很好。试试the demos。我们将它与ASP.NET MVC一起使用。

更新:在您更新的问题中,您询问了如何使用jQuery和WebForms等框架。你能做这个吗?当然。你想要吗?这是一个更难的问题。在WebForms中,您通常让WebForms为您生成JavaScript。这就是你有UpdatePanel之类的原因。一方面,这很容易,因为您可以将编码注意力集中在C#上,并且您可以使用网格组件,这些组件不需要您编写任何JavaScript来使它们工作。另一方面,您仅限于生成的代码可以执行的操作。是的,您可以手动编写JavaScript,甚至可以在WebForms中编写,但您必须解决框架所做的一些事情,例如更改控件上的ID。是的,您可以使用C#编写事件处理程序,但这需要使用回发,这些回发在HTTP中自然不适合,并且最终用户可以看到后果。

在很多程度上使用jQuery与ASP.NET MVC是很常见的,因为它随框架一起提供。但即使在此之前,将两者结合使用仍然非常普遍,因为jQuery使得很容易做到ASP.NET MVC中不直接支持的事情,比如使页面上的控件相互交互。是的,这意味着你必须编写JavaScript,但只要你对它好,你就可以获得巨大的优势,你可以编写你想要的任何类型的交互而无需回发到服务器。

如果你只是在为WebForms寻找一个好的网格控件,那么我建议使用为WebForms设计的控件,而不是为jQuery设计的网格。原因是你要编写的代码更适合WebForms的习语。

如果您只是想学习jQuery,那么这是一个非常好的主意,因为该框架很有趣,有用且设计精良,但我不确定一个好的控件是最好的起点。一个更好的起点可能是为您现有的一些页面添加视觉效果。从已知的HTML开始并使用jQuery操作它比在同时生成新的HTML和学习jQuery更容易。

答案 2 :(得分:3)

我目前使用DataTables。这允许您创建一个html表并为多列,多列排序,分页等应用过滤器。您可以选择对html表进行客户端操作或从AJAX源接收数据。

它还有一个API,用于动态添加行,动态显示列和分组。

答案 3 :(得分:1)

答案 4 :(得分:1)

从你的评论(关于克雷格提到jqGrid),你要么想要使用jqGrid,FlexiGrid或其他客户端替代品,并自己连接服务器端,或者你会更好一个基于非jquery的商业ajax网格组件。

如果你正在使用MVC(如Craig Mentions),那么jqGrid非常合适。将jqGrid事件连接到MVC中的JsonResult控制器操作相当容易。

答案 5 :(得分:0)

答案 6 :(得分:0)

答案 7 :(得分:0)

你可以尝试使用JQuery的免费WebGrid DataGrid并且是JQuery ThemeRoller-Ready

答案 8 :(得分:0)

jsGrid是一个轻量级的GridView jQuery插件js-grid.com

它非常可定制,可以与任何dataSource一起使用。