Đoạn mã nàyASP: DropDownList trong ItemTemplate: Tại sao thuộc tính SelectedValue được phép?
<asp:DropDownList runat="server" ID="testdropdown" SelectedValue="2">
<asp:ListItem Text="1" Value="1"></asp:ListItem>
<asp:ListItem Text="2" Value="2"></asp:ListItem>
<asp:ListItem Text="3" Value="3"></asp:ListItem>
</asp:DropDownList>
mang lại lỗi này:
The 'SelectedValue' property cannot be set declaratively.
Tuy nhiên, đây là một chỉnh sửa mẫu quy phạm pháp luật và thường được sử dụng cho GridViews databound. Thuộc tính SelectedValue
chắc chắn dường như được khai báo ở đây.
<EditItemTemplate>
<asp:DropDownList runat="server"
ID="GenreDropDownList"
DataSourceID="GenreDataSource"
DataValueField="GenreId"
DataTextField="Name"
SelectedValue='<%# Bind("Genre.GenreId") %>'>
</asp:DropDownList>
</EditItemTemplate>
Câu hỏi đặt ra là: sự khác biệt giữa các trường hợp khi bạn được phép đặt báo cáo và những trường hợp bạn không được phép khai báo là gì? Thông báo lỗi ngụ ý rằng nó không bao giờ được cho phép.
Đó sẽ trả lời câu hỏi của tôi, nếu nó không được cho phần thứ hai của câu hỏi của tôi. Rõ ràng, trong một số trường hợp, bạn được phép khai báo SelectedValue, như tôi đã minh họa. Tôi đang cố gắng để hiểu sự khác biệt giữa các trường hợp khi bạn được phép và không. – recursive
Vì trong mẫu GridView bạn chưa thực sự đặt giá trị bằng cách sử dụng phương thức liên kết. Liên kết thực sự xảy ra khi chạy. Nó giống như nói "Khi chạy, khi tôi liên kết dữ liệu với nó, hãy chọn giá trị dựa trên trường này" – Gautam