以下の問題を解決する方法がわかりません。オブジェクトデータソースを持つドロップダウンリストがあります。コード内には次のようなメソッドがあります。ドロップダウンリストにデータが入力されない
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;
...
}
このメソッドは、ページのフォームフィールドに値を設定します。私がしようとしているのは、odsからランクドロップダウンリストを作成することですが、このメソッドを使用して、ランクdropwonリストの選択項目に行rank.Text = mr.rankを設定します。この例では、エラーをスローするコード行がコメントアウトされています。そうでない場合は、「rank」に項目のリストに存在しないため無効なSelectedValueがあります。 パラメータ名:値」
私はrank.DataTextFiled = mr.rankとrank.DataValueField = mr.rankid.ToString()のコードを流しましたが、これは別のエラーを投げました: "DataBinding: 'System.Data.DataRowView'には、名前が 'Star'のプロパティ。 「星」はmr.rankの価値です。ここで
は、どのようなドロップダウンリストで、ODSは、次のようになります。<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>
agianのようなものを試してみてください、あなたは何を意味するかわかりません。 IDとランクはデータベース内の列ですが、私はそれがあなたが意味するものではないと推測しています... – Risho