我不知道如何解决以下问题。我有包含对象数据源的下拉列表。然后在代码中有这样的方法下拉列表不会填充
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