此列表存在這是無效的是我得到的錯誤:的SelectedValue,因爲它並不在項目
ddlRankEdit」具有的SelectedValue是無效的,因爲它在項目列表中未 存在。參數名稱:值
我有一個表格嵌套在一個默認設置爲不可見的面板中的幾個下拉列表。當用戶從單獨的列表框中選擇一條記錄時,所選的索引更改事件將該面板設置爲可見並進行數據調用。那是錯誤發生的時候。看到下面的代碼,我在XXX上添加了它的位置。
<asp:DropDownList runat="server" ID="ddlRankEdit" CssClass="txtfield" DataSourceID="ODCRanks"
DataTextField="Rank" DataValueField="ID" AppendDataBoundItems="True">
<asp:ListItem Text="--- Select a Rank ---" Value="-1" />
</asp:DropDownList>
<asp:ObjectDataSource ID="ODCRanks" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetRanks"
TypeName="RanksTableAdapters.RankTableAdapter"></asp:ObjectDataSource>
protected void lboxManageMembers_SelectedIndexChanged(object sender, EventArgs e)
{
pnlReviewMemberDetails.Visible = false;
pnlUnlockUserAccount.Visible = false;
pnlAdmins.Visible = false;
pnlCreateAdmins.Visible = false;
lblNote.Visible = false;
pnlManageMenbers.Visible = true;
MembershipUser user = Membership.GetUser();
DataSetTableAdapters.MemberInfoTableAdapter da = new DataSetTableAdapters.MemberInfoTableAdapter();
Guid _memberId = Guid.Empty;
_memberId = new Guid(lbxManageMembers.SelectedValue);
DataSet.MemberInfoDataTable dt = da.GetMember(_memberId);
if (dt.Rows.Count == 1)
{
DataSet.MemberInfoRow mr = dt[0];
XXX ddlRankEdit.SelectedValue = Convert.ToString(mr.rankid);
XXX ddlPatrolEdit.SelectedValue = Convert.ToString(mr.patrolid);
XXX ddlPositionEdit.SelectedValue = Convert.ToString(mr.bsaposid);
txtFirstNameEdit.Text = mr.firstname;
txtLastNameEdit.Text = mr.lastname;
txtEmailEdit.Text = user.Email;
txtAddressEdit.Text = mr.address;
txtPhoneEdit.Text = mr.phone;
txtCellPhoneEdit.Text = mr.altphone;
txtAltEmailEdit.Text = mr.altemail;
txtMotherFirstNameEdit.Text = mr.parentfn;
txtMotherLastNameEdit.Text = mr.parentln;
txtMotherWorkPhoneEdit.Text = mr.parentworkphone;
txtMotheHomePhoneEdit.Text = mr.parentworkphone;
txtMotherCellkPhoneEdit.Text = mr.parentscellphone;
txtMotherTwitterEdit.Text = mr.parenttwitter;
txtMotherEmailEdit.Text = mr.parentemail;
txtMotherAltEmailEdit.Text = mr.parentemailalt;
txtFatherFirstNameEdit.Text = mr.parent2fn;
txtFatherLastNameEdit.Text = mr.parent2ln;
txtFatherWorkPhoneEdit.Text = mr.parent2workphone;
txtFatherHomePhoneEdit.Text = mr.parent2workphone;
txtFatherCellPhoneEdit.Text = mr.parent2cellphone;
txtFatherTwitterEdit.Text = mr.parent2twitter;
txtFatherEmailEdit.Text = mr.parent2email;
txtFatherAltEmailEdit.Text = mr.parent2emailalt;
}
}
這是由於面板設置爲inv而導致的生命週期問題isible?數據是正確的。 – Risho 2012-01-15 01:09:25
我曾經想過可能存在一個頁面生命週期問題,但我只是在一個小項目上測試了這個問題,發現即使DDList的可見性設置爲false,值也會正確回發。重現此問題的唯一方法是使用實際上不在下拉列表中的值列表中的值。 – 2012-01-15 02:09:38
不知道你是如何做到的,因爲我從一開始就讓面板可見,然後在回發中沒有錯誤。 – Risho 2012-01-15 02:17:39