我不知道如何解決以下問題。我有包含對象數據源的下拉列表。然後在代碼中有這樣的方法下拉列表不會填充
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中填充等級下拉列表,但使用上面的這個方法來填充rank rank.Text = mr.rank的等級dropwon列表的選定項目。在這個例子中,拋出錯誤的代碼行被註釋掉了,否則它會拋出:「'rank'有一個SelectedValue,它是無效的,因爲它不存在於項目列表中 參數名稱:value」。我已經chaned代碼rank.DataTextFiled = mr.rank和rank.DataValueField = mr.rankid.ToString(),但這引發了另一個錯誤:「DataBinding:'System.Data.DataRowView'不包含一個名爲'星'的財產。「 「星」是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