的SelectedValue因为它不在项目列表中存在这是无效的 [英] SelectedValue which is invalid because it does not exist in the list of items

查看:140
本文介绍了的SelectedValue因为它不在项目列表中存在这是无效的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的错误:


  

ddlRankEdit'有SelectedValue的是无效的,因为它不
  存在于项目清单。参数名称:值


我室内用有被嵌套在一个面板是默认设置为不可见的几个dropdownlists一种形式。当用户选择从单独的列表框中的记录所选索引改变事件的面板设置为可见光,使一个数据呼叫。当错误发生的。见code以下,我说XXX在那里摊位。

 < ASP:DropDownList的=服务器ID =ddlRankEdit的CssClass =txtfield的DataSourceID =ODCRanks
  DataTextField =等级DataValueField =IDAppendDataBoundItems =真>
  < ASP:ListItem的文本=---选择---排名值= - 1/>
  < / ASP:DropDownList的>
  < ASP:ObjectDataSource控件ID =ODCRanks=服务器
    OldValues​​ParameterFormatString =original_ {0}SelectMethod =GetRanks
    类型名=RanksTableAdapters.RankTableAdapter>< / ASP:ObjectDataSource控件>保护无效lboxManageMembers_SelectedIndexChanged(对象发件人,EventArgs的发送)
{
    pnlReviewMemberDetails.Visible = FALSE;
    pnlUnlockUserAccount.Visible = FALSE;
    pnlAdmins.Visible = FALSE;
    pnlCreateAdmins.Visible = FALSE;
    lblNote.Visible = FALSE;
    pnlManageMenbers.Visible =真;    的MembershipUser用户= Membership.GetUser();
    DataSetTableAdapters.MemberInfoTableAdapter DA =新DataSetTableAdapters.MemberInfoTableAdapter();    GUID _memberId = Guid.Empty;
    _memberId =新的GUID(lbxManageMembers.SelectedValue);
    DataSet.MemberInfoDataTable DT = da.GetMember(_memberId);
    如果(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;
    }}


解决方案

该错误信息是告诉你到底发生了什么:值,例如存储在mr.rankid,是不是在DropDownList present <。 / p>

您需要弄清楚DropDownList中是否包含正确的值或者你想在指定可用值列表中不存在的价值。

更新

既然是包含面板,这似乎是导致问题的知名度,倒不如隐藏使用CSS比可见属性设置为false面板,这将prevent从渲染到页面上。

这可以用类似于code-背后以下code完成

  Panel1.Style.Add(HtmlTextWriterStyle.Visibility,隐藏);
Panel1.Style.Add(HtmlTextWriterStyle.Display,无);

This is the error I get:

ddlRankEdit' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value

I have a form wiht several dropdownlists that are nested in a panel that is by default set to invisible. When a user selects a record from a separate list box the selected index changed event sets the panel to visible and makes a data call. That's when the error happens. See the code below, I added XXX where it stalls.

<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;
    }

}

解决方案

The error message is telling you exactly what is happening: the value, for example stored in mr.rankid, is not present in the dropdownlist.

You need to figure out whether or not the dropdownlist contains the correct value or the value you are trying to assign does not exist in the list of available values.

Update

Since it is the visibility of the containing panel that seems to be causing the problems, it would be better to hide the panel using CSS than setting the Visible property to false, which will prevent it from rendering to the page.

This can be done with code similar to the following in the code-behind:

Panel1.Style.Add(HtmlTextWriterStyle.Visibility, "Hidden");
Panel1.Style.Add(HtmlTextWriterStyle.Display, "None");

这篇关于的SelectedValue因为它不在项目列表中存在这是无效的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆