2011-08-17 37 views
12

Sự khác biệt của DataSourceID và DataSource từ thuộc tính của điều khiển là gì? Tôi có thể sử dụng chúng thay thế cho nhau không?ASP.NET - Sự khác biệt của DataSourceID và DataSource là gì?

Khi tôi cố gắng đặt DataSource thuộc tính tại thời điểm thiết kế, bằng cách nhập nó trên trang aspx, tôi nhận được ngoại lệ cho biết "Thuộc tính" DataSource 'không thể được đặt một cách khai báo. " Nhưng khi tôi sử dụng cửa sổ thuộc tính để thay đổi DataSource, nó không có ngoại lệ.

+1

http://blog.tylerholmes.com/2008/06/datasource-vs-datasourceid-internals.html –

Trả lời

10

DataSource đề cập đến đối tượng nguồn dữ liệu thực tế mà có thể được NET cung cấp kiểm soát nguồn dữ liệu (chẳng hạn như ObjectDataSource , SqlDataSource) hoặc các đối tượng dữ liệu thực tế chẳng hạn như DataTable, Bộ sưu tập các đối tượng, v.v.

DataSourceID là định danh chuỗi để kiểm soát ràng buộc dữ liệu được cung cấp và nguồn dữ liệu tương ứng có thể được liên kết tại thời gian thiết kế trong đánh dấu. Bên trong, kiểm soát sẽ tìm kiếm điều khiển nguồn dữ liệu thực tế bằng cách sử dụng id được cung cấp.

6

DataSourceID có thể được chỉ định ID của điều khiển nguồn dữ liệu khác thuộc loại như ObjectDataSourceXmlDataSource.

Data Source Controls tổng quan:

http://msdn.microsoft.com/en-us/library/ms227679.aspx

Có nhiều loại khác nhau của các điều khiển nguồn dữ liệu cũng hay bạn có thể phát triển riêng của bạn là tốt.

Datasource được sử dụng khi bạn muốn trực tiếp cung cấp cho các nguồn để kiểm soát như DataSet hoặc một DataTable

1

DataSource: Gets hoặc đặt các đối tượng từ đó kiểm soát dữ liệu ràng buộc lấy danh sách các mục dữ liệu. (Kế thừa từ BaseDataBoundControl.)

DataSourceID: Lấy hoặc đặt ID của điều khiển mà từ đó kiểm soát ràng buộc dữ liệu truy xuất danh sách các mục dữ liệu. (Kế thừa từ DataBoundControl.)

Thứ hai chúng có thể được sử dụng interchangeably, nhưng bạn phải sử dụng cẩn thận. ví dụ. Nếu bạn lần đầu tiên gán dataSourceID và sau đó muốn sử dụng DataSource, sau đó trước khi sử dụng DataSource, bạn phải xóa DataSourceID bằng cách thiết lập ControlID.DataSourceID = ""

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