2009-03-02 40 views
19

Ràng buộc dữ liệu là tất cả về mã khai báo, phải không? Vì vậy, tôi xác định những gì tôi muốn với các thuộc tính, và khuôn khổ sẽ chăm sóc phần còn lại. Trừ khi tôi bị nhầm lẫn và ràng buộc dữ liệu liên quan đến S & M, phải không? Vì vậy, tại sao điều khiển DropDownList chỉ cung cấp các trường ràng buộc cho nguồn dữ liệu của nó, tức là nguồn danh sách của nó, chứ không phải cho trường dữ liệu thực tế của nó. tức là làm cách nào để tôi liên kết giá trị đã chọn tên tôi DropDownList với trường Tên trong bản ghi Nhân của tôi? Đây có phải là sự giám sát tổng thể trên phần của Microsoft hay của tôi không?Cách liên kết giá trị được chọn của một DropDownList

Điểm liên kết dữ liệu hai chiều là gì nếu tôi vẫn phải đặt thủ công và đọc giá trị đã chọn?

Trả lời

44

Bạn có thể muốn làm điều gì đó giống như mã dưới đây. Bạn không thể thiết lập các "SelectedValue" khai báo, nhưng bằng cách nói "SelectedValue = <% # [mã ở đây]%> bạn đang có hiệu quả gây ra giá trị được thiết lập khi sự kiểm soát là dữ liệu bị ràng buộc.

<asp:DropDownList 
       ID="DropDownInfoSource" 
       runat="server" 
       DataSourceID="_employeeDataSource" 
       DataTextField="EmployeeName" 
       DataValueField="EmployeeID" 
       SelectedValue='<%# Bind("EmployeeID") %>' 
       /> 
+3

Cảm ơn, tôi đã có một chút nhanh chóng ra khỏi nhãn hiệu: Tôi chỉ cần nhìn vào Intellisense cho một thuộc tính giá trị, và không ai cho thấy, vì vậy tôi hỏi mà không cần nhìn xa hơn. Chúng ta cần một biểu tượng cảm xúc xấu hổ trong các bình luận. – ProfK

+1

Tôi nhận được, trong .NET 4, một lỗi nói: "Một cuộc gọi đến Bind phải được gán cho một thuộc tính của một điều khiển bên trong một khuôn mẫu" mặc dù điều khiển nằm bên trong một ItemTemplate của một GridView. Thay đổi Bind thành Eval đã làm việc cho tôi. –

+0

@Andrew - Tôi đang ở trong trường chỉnh sửa mẫu và tôi đang sử dụng asp.NET 4.0. Tôi đã thử sử dụng EVAL thay vì Bind, nhưng nó vẫn không hoạt động. Bất kỳ ý tưởng? –

-1

Có một trường nơi bạn xác định nguồn dữ liệu, datatextfield (những gì hiển thị trong danh sách) và datavaluefield.

Ví dụ (Tôi có một DataTable với một cột "EmployeeID" và cột "EmployeeName"):

dropdownlist1.datasource = DT 
dropdownlist1.datatextfield = "EmployeeName" 
dropdownlist1.datavaluefield = "EmployeeID" 
dropdownlist1.databind() 
+7

Nếu bạn đọc câu hỏi của tôi bạn sẽ thấy tôi biết về Tôi muốn biết cách liên kết giá trị đã chọn với một nguồn dữ liệu khác, như tôi đã hỏi. – ProfK

+0

Nó không quan trọng nếu bạn biết về điều đó. Nếu câu hỏi của bạn nên mang lại lợi ích cho người khác, có lẽ nó nên bao gồm một biến thể của các giải pháp. – Harry

0

tôi không biết nếu nó thực sự sẽ giúp bạn, nhưng bạn đã cố gắng để thiết lập các "SelectedValue" trên Mã đằng sau

Ví dụ:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    DropDownInfoSource.SelectedValue = "1" ' your value, here 
End Sub 
Các vấn đề liên quan