2012-10-26 37 views
5

Tôi đang làm việc trên trang "chỉnh sửa" cho một đối tượng. Trên trang này, tôi muốn có một cái gì đó giống như một DetailsView cho phép chỉnh sửa các thuộc tính của đối tượng cũng như một GridView với trẻ em và cho phép đơn giản Add/Edit/Delete của trẻ em. Các cập nhật cho các đối tượng cha hoặc con không nên lưu vào cơ sở dữ liệu cho đến khi nhấn nút Save. Tôi là các mẫu web asp.net và Entity FrameworkCần ví dụ về biểu mẫu web chỉnh sửa đối tượng đối tượng gốc với trẻ em

Như một ví dụ đơn giản, hãy tưởng tượng một đối tượng Project với một bộ sưu tập Tài nguyên. Tôi đang xây dựng một trang cho phép người dùng thay đổi các thuộc tính Project như ProjectName trong một DetailsView cũng như thêm/chỉnh sửa/xóa một Resource trong Gridview bên dưới. Một nút Lưu ở dưới cùng sẽ lưu mọi thứ.

Tôi đã tìm thấy ví dụ về điều này trong MVC, nhưng gặp sự cố khi tìm ví dụ về biểu mẫu web.

+0

Tôi không có lược đồ này, nhưng một ý tưởng là để lưu các trẻ em thay đổi dữ liệu trên ViewState cho đến khi dữ liệu tổng thể đi để lưu, sau đó lưu chúng lại với nhau. – Aristos

Trả lời

0

Tôi không thể mã ứng dụng của bạn cho bạn nhưng tôi đã hoàn thành việc này bằng một trong hai biến thể của cùng một mẫu.

Tạo đối tượng bản ghi cho con bạn có thể tuần tự hóa và duy trì điều đó trong Danh sách dựa trên ViewState. Nếu dữ liệu lớn đáng kể, hãy xem xét việc duy trì nó trong Phiên và sử dụng khóa duy nhất cho đối tượng Phiên của bạn (chẳng hạn như GUID được gán tại Page_Load) và lưu khóa trong ViewState.

Khi bạn sử dụng xong việc chỉnh sửa phụ huynh/trẻ em, bạn sẽ phải giải quyết thay đổi đối tượng ViewState/Session dựa vào đối tượng được lưu trữ trên đĩa.

+0

Tôi có thể làm việc này bằng cách sử dụng ViewState như bạn đã đề xuất để lưu trữ các đối tượng thực thể của tôi. Thách thức lớn nhất là tôi đã cố gắng sử dụng một EntityDataSource cho GridView và DetailsView. Điều này không làm việc và tôi đã kết thúc bằng cách sử dụng đối tượng thực thể trực tiếp làm nguồn dữ liệu và mã hóa các nhiệm vụ giá trị trong các sự kiện Cập nhật. – OffTheRadar

+0

Đúng, không có nguồn dữ liệu chuẩn nào sẽ hoạt động khi bị ngắt kết nối khỏi cơ sở dữ liệu của bạn. Xem kích thước viewstate của bạn. Nếu nó bắt đầu trở thành một vấn đề, hãy xem xét di chuyển lưu trữ dữ liệu tạm thời của bạn sang phiên với khóa dựa trên veiwstate. – andleer

Các vấn đề liên quan