2009-04-09 5 views
13

Có bất kỳ điều gì như thế này tồn tại không?Điều khiển JQuery GridView

Điều tôi đang tìm kiếm là một điều khiển sẽ là phía máy khách, với chức năng Chỉnh sửa, Hủy hàng của GridView.

Tôi muốn sử dụng nó để thu thập dữ liệu từ người dùng và sau đó lưu trên máy chủ sau khi người dùng nhập dữ liệu xong.

CHỈNH SỬA:

Cảm ơn tất cả các đề xuất. Một điều mà tôi muốn hỏi tất cả các bạn trước khi tôi nghiên cứu và dành thời gian học các khuôn khổ này.

Tất cả các bạn dường như sử dụng ASP.net MVC và đề cập rằng các bộ công cụ này là tốt với điều này. Tôi tuy nhiên, bằng cách sử dụng các hình thức web ASP.net. Các khung công tác này có chơi tốt với hương vị cũ của ASP.net không?

Trả lời

6

Có. jqGrid hoạt động tốt. Hãy thử the demos. Chúng tôi sử dụng nó với ASP.NET MVC.

Cập nhật: Trong câu hỏi được cập nhật của bạn, bạn đã hỏi về việc sử dụng các khung như jQuery với WebForms. Bạn làm được cái này không? Chắc chắn rồi. Bạn có muốn không? Đó là một câu hỏi khó hơn. Trong WebForms, bạn thường là để cho WebForms tạo JavaScript cho bạn. Đó là lý do tại sao bạn có UpdatePanel và tương tự. Một mặt, điều này là dễ dàng, bởi vì bạn có thể tập trung sự chú ý mã hóa của bạn vào C#, và bạn có thể sử dụng các thành phần lưới mà không yêu cầu bạn viết bất kỳ JavaScript nào cả để làm cho chúng hoạt động. Mặt khác, bạn bị giới hạn bởi những gì mã được tạo ra có thể làm. Có, bạn có thể viết JavaScript theo cách thủ công, ngay cả trong WebForms, nhưng bạn phải làm việc xung quanh một số thứ mà khung công tác thực hiện, như thay đổi ID trên các điều khiển. Có, bạn có thể viết xử lý sự kiện trong C#, nhưng điều này đòi hỏi việc sử dụng postbacks, không phù hợp tự nhiên trong HTTP, với hậu quả có thể nhìn thấy được đối với người dùng cuối.

Điều thường xảy ra khi sử dụng jQuery với ASP.NET MVC không phải là một phần nhỏ vì nó đi kèm với khung công tác. Nhưng ngay cả trước khi điều đó xảy ra, nó vẫn còn rất phổ biến để sử dụng hai với nhau vì jQuery làm cho nó rất dễ dàng để làm những điều mà nếu không không được hỗ trợ trực tiếp trong ASP.NET MVC, như làm cho điều khiển trên một trang tương tác với nhau. Có, điều này có nghĩa là bạn phải viết JavaScript, nhưng miễn là bạn đồng ý với điều đó, bạn sẽ có được lợi thế rất lớn mà bạn có thể viết bất kỳ loại tương tác nào mà bạn muốn mà không phải đăng lại máy chủ.

Nếu bạn đang tìm kiếm một điều khiển lưới tốt cho WebForms, thì tôi khuyên bạn nên sử dụng một điều khiển được thiết kế cho WebForms, chứ không phải là một lưới được thiết kế cho jQuery. Lý do là mã bạn sẽ viết sẽ phù hợp tự nhiên hơn trong các thành ngữ của WebForms.

Nếu bạn chỉ muốn học jQuery, thì đó là một ý tưởng thực sự tốt, vì khung công tác thú vị, hữu ích và được thiết kế tốt, nhưng tôi không chắc rằng điều khiển tuyệt vời là nơi tốt nhất để bắt đầu. Một nơi tốt hơn để bắt đầu có thể là thêm sự tinh tế trực quan vào một số trang hiện có của bạn. Nó dễ dàng hơn để bắt đầu với HTML đã biết và thao tác nó với jQuery hơn là tạo ra HTML mới và học jQuery cùng một lúc.

+0

là máy chủ có thể truy cập được không? nghĩa là: tôi có thể thu thập các giá trị ngoài lưới trong mã C# của tôi không? – sarsnake

+0

nó không phải là automagicaly có dây đến máy chủ. Tôi đang sử dụng phiên bản alpha hiện tại, đã tự thực hiện một loạt các sửa đổi/tiện ích mở rộng. Nó không quá khó để kết nối, thực sự dễ dàng được sử dụng với các hành động JsonResult trong khung MVC. – Tracker1

+0

Ví dụ: bạn có thể đăng chỉnh sửa lên máy chủ không? Có, nhưng jQuery, tất nhiên, không có kiến ​​thức về postbacks ASP.NET. Vì vậy, không phải thông qua một sự kiện ASP.NET. "Lưu" sẽ là một POST riêng biệt. –

1

Từ nhận xét của bạn (về đề cập đến jqGrid của Craig), bạn sẽ muốn sử dụng jqGrid, FlexiGrid hoặc một giải pháp thay thế phía máy khách khác, và tự mình kết nối với máy chủ, hoặc bạn sẽ tốt hơn với thành phần lưới ajax thương mại không dựa trên jquery.

Nếu bạn đang sử dụng MVC (như Craig Mentions), jqGrid là một trang web khá đẹp.Thật dễ dàng để kết nối các sự kiện jqGrid với các hành động điều khiển JsonResult trong MVC.

+0

Cảm ơn :) không, tôi không sử dụng MVC. Chúng tôi đang sử dụng các hình thức ASP.net. Tôi hiện đang sử dụng GridView (kiểm soát asp.net) và tôi quan tâm đến việc thử nghiệm với nhiều dev phía máy khách hơn để làm cho trải nghiệm người dùng tốt hơn. – sarsnake

8

khung Client-side

Ngoài jqGrid, có một số lưới khung javascript khác mà tôi đã chơi với thời gian gần đây:

  1. Flexigrid: jQuery-based, không tính năng chỉnh sửa, nhưng đã lên kế hoạch.

  2. Ext's GridPanel: Ext js là một khung javascript khác giao diện với jQuery.

  3. YUI's DataTable: Các Yahoo tài Interface (YUI) là có một khuôn khổ với một chỉnh sửa Lưới kiểm soát.

Đây là tất cả các thành phần phía máy khách: chúng hoạt động trong trình duyệt của người dùng, bị ngắt kết nối khỏi mã máy chủ của bạn. Giống như Tracker1 và một số người khác đã viết, bạn sẽ phải tự viết các phương thức Ajax để nối lưới phía máy khách với máy chủ hoặc bạn có thể thử tận dụng các trình bao bọc hiện có, chẳng hạn như:

Tùy chọn phía máy chủ

  1. Coolite's Ext wrappers for .NET

  2. Một trong những YUI NET thư viện wrapper kinh doanh dở dang (YuiDotNet hoặc Yui.NET). Tôi không nghĩ rằng một trong những thực hiện một wrapper cho DataTable được nêu ra, nhưng họ có thể chỉ cho bạn cách để làm như vậy.

Kết nối client và server

Nếu bạn chưa từng làm việc với rất nhiều Ajax hoặc thực hiện nhiều với những khung javascript, được chuẩn bị cho một chút của một đường cong học tập: như bạn bắt đầu sử dụng chúng, bạn sẽ cần phải ghi nhớ những gì đang xảy ra trên máy chủ và những gì đang xảy ra trên máy khách (và khi nào!).

Nếu bạn sử dụng một trong các thư viện javascript thẳng tôi đã liệt kê ở trên, trái với trình bao bọc .NET, bạn phải viết phương thức phía máy chủ để xử lý gửi dữ liệu và hiển thị nó cho khách hàng công nghệ (hành động điều khiển JsonResult của MVC, thiết lập WebMethods/ScriptMethods, v.v.).

liên quan Stack Overflow câu hỏi

Using ExtJS in ASP.NETReturning data from ASP.net to an ExtJS Grid - đây đang tập trung vào kiểm soát Ext, nhưng câu trả lời chứa rất nhiều thông tin nói chung tốt về kết nối thế hệ mới của các điều khiển khung javascript cho các ứng dụng máy chủ.

Good Asp.Net excel-like Grid control - bạn cũng có thể quan tâm đến câu trả lời cho câu hỏi này, đặc biệt vì có vẻ như bạn muốn có khả năng chỉnh sửa vững chắc.

+0

Cảm ơn! wow! thông tin quá tải :) Tôi đã nhìn vào wrapper Ext Coolite cho. NET và tôi không thấy GridView ở đó, nhưng những thứ như PropertyGrid và DataView ..... Tôi giả định rằng có thể làm các trick. Cảm ơn một lần nữa, tôi sẽ phải xem xét những điều này và đưa ra quyết định. – sarsnake

0

Bạn có thể thử tôi miễn phí WebGrid DataGrid trong đó sử dụng JQuery và là JQuery ThemeRoller-Ready

3

Tôi hiện đang sử dụng DataTables. Điều này cho phép bạn tạo một bảng html và áp dụng các bộ lọc cho nhiều cột, sắp xếp nhiều cột, phân trang, v.v. Bạn có tùy chọn cho việc triển khai phía máy khách của bảng html hoặc nhận dữ liệu từ nguồn AJAX.

Nó cũng có API để tự động thêm hàng, hiển thị cột động và nhóm.

0

jsGrid là một trọng lượng nhẹ GridView jQuery plugin js-grid.com

Nó khá tùy biến và có thể được sử dụng với bất kỳ nguồn dữ liệu.