ASP: DropDownList dans ItemTemplate: Pourquoi l'attribut SelectedValue est-il autorisé?
Ce morceau de code
<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>
les rendements de cette erreur:
Le " SelectedValue la propriété ne peut pas être
définir de manière déclarative.
Encore, c'est un juridique et communément utilisés pour modifier le modèle pour databound GridViews. Le SelectedValue
attribut certainement définir de façon déclarative ici.
<EditItemTemplate>
<asp:DropDownList runat="server"
ID="GenreDropDownList"
DataSourceID="GenreDataSource"
DataValueField="GenreId"
DataTextField="Name"
SelectedValue='<%# Bind("Genre.GenreId") %>'>
</asp:DropDownList>
</EditItemTemplate>
La question est: quelle est la différence entre le cas où vous êtes autorisé à définir de manière déclarative et ceux dans lesquels vous n'êtes pas? Le message d'erreur indique qu'il n'est jamais permis.
source d'informationauteur recursive
Vous devez vous connecter pour publier un commentaire.
Cela signifie que vous ne pouvez pas définir par le concepteur.
La manière correcte est:
La raison pour laquelle la méthode liée fonctionne est parce que la valeur n'est pas sélectionnée dans le mode de conception, mais au moment de l'exécution, après le contrôle est lié à une source de données
La DropDownList.SelectedValue méthode est destinée à être appliquée au moment de l'exécution par conséquent l'erreur de ne pas être en mesure de définir 'décorer'
dans le balisage utilisation SelectedValue='<%# "32" %> syntaxe .(note de l'exemple suivant ):
ou dans le code-behind juste après la liaison de données .(exemple):