Je ne suis pas sûr de savoir comment corriger le problème suivant. J'ai une liste déroulante qui a une source de données d'objet. Ensuite, dans le code, il y a une méthode comme ceciListe déroulante ne peuplera pas
void InitPageData()
{
MembershipUser user = Membership.GetUser();
DataSetTableAdapters.MemberInfoTableAdapter da = new DataSetTableAdapters.MemberInfoTableAdapter();
DataSet.MemberInfoDataTable dt = da.GetMember((Guid)user.ProviderUserKey);
if (dt.Rows.Count == 1)
{
DataSet.MemberInfoRow mr = dt[0];
//rank.Text = mr.rank;
//position.Text = mr.position;
UserName.Text = user.UserName;
...
}
Cette méthode remplit les champs de formulaire sur la page. Ce que j'essaye de faire est d'avoir la liste déroulante de rang peuplée des ods mais emploie cette méthode ci-dessus pour remplir l'article choisi de la liste de rang dropwon avec la ligne rank.Text = mr.rank. Dans cet exemple, la ligne de code qui jette l'erreur est mise en commentaire sinon elle renvoie ceci: "'rank' a une valeur SelectedValue qui n'est pas valide car elle n'existe pas dans la liste des éléments Nom du paramètre: valeur".
J'ai chanté le code à rank.DataTextFiled = mr.rank et rank.DataValueField = mr.rankid.ToString() mais cela a jeté une autre erreur: "DataBinding: 'System.Data.DataRowView' ne contient pas de propriété avec le nom 'Star'. " "Star" est la valeur du mr.rank.
Voici ce que la liste déroulante et les ods ressemblent:
<asp:DropDownList runat="server" ID="rank" CssClass="txtfield" DataSourceID="ODCRanks"
DataTextField="Rank" DataValueField="ID" AppendDataBoundItems="True">
<asp:ListItem Text="--- Select a Rank ---" Value="-1" />
<asp:ObjectDataSource ID="ODCRanks" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetRanks"
TypeName="RanksTableAdapters.RankTableAdapter"></asp:ObjectDataSource>
planifions, pas sûr de ce que vous voulez dire. L'ID et le rang sont des colonnes dans la base de données mais je suppose que ce n'est pas ce que vous voulez dire ... – Risho