DropDown选定值不适用于int类型值

时间:2013-10-01 08:00:27

标签: c# asp.net

我的asp.net项目中有一个类,如下所示:

  public class CenterInfo
    {
        public int ID { get; set; }
        public string CenterName { get; set; }
    }

我有一个下拉列表(包含DataTextField="CenterName" DataValueField="ID"),其中有一个CenterInfo列表作为数据源,我尝试以这种方式在代码后面的dropdownlist中选择一个项目:

CenterDropDownList.SelectedValue = Student.CenterID.ToString();

但它不起作用,因为下拉值实际上是int类型,并且所选值是字符串类型。我能做些什么呢?

我的aspx:

 <asp:DropDownList ID="CenterNameDropDownList" runat="server" CssClass="requestdropdownlist" OnSelectedIndexChanged="CenterNameDropDownList_SelectedIndexChanged" DataTextField="CenterName" DataValueField="ID" ></asp:DropDownList>

和cs:

   CenterNameDropDownList.DataSource = Data.CenterDB.GetCenterByCityId(city.ID);
                CenterNameDropDownList.DataBind();

和相关的渲染html:

  <select name="ctl00$ContentsPlaceHolder$CenterNameDropDownList" id="ContentsPlaceHolder_CenterNameDropDownList" disabled="disabled" class="aspNetDisabled requestdropdownlist">
    <option selected="selected" value="1">سمنان : شهید عاملو</option>
    <option value="2">سمنان : شهید مطهری</option>
    <option value="3">سمنان : حکیم الهی</option>
    <option value="4">سمنان : شهید قندی</option>
    <option value="9">سمنان : جهادیه</option>
    <option value="47">سمنان : اعلاء</option>
    <option value="48">سمنان : اروانه</option>
    <option value="49">سمنان : بیابانک</option>
    <option value="50">سمنان : ایج</option>
    <option value="51">سمنان : خیرآباد</option>
    <option value="52">سمنان : لاسجرد</option>
    <option value="53">سمنان : پایگاه هوایی</option>
    <option value="54">سمنان : شهرک صنعتی سمنان</option>
    <option value="56">سمنان : آبخوری Wll</option>
    <option value="57">سمنان : اعلا Wll</option>
    <option value="58">سمنان : اسدآباد Wll</option>
    <option value="59">سمنان : دلازیان Wll</option>
    <option value="60">سمنان : دزهير Wll</option>
    <option value="61">سمنان : جام Wll</option>
    <option value="62">سمنان : خیرآباد Wll</option>
    <option value="63">سمنان : مومن آباد Wll</option>
    <option value="64">سمنان : افتر</option>
    <option value="65">سمنان : مومن اباد</option>
    <option value="175">سمنان : مهر 1 سمنان</option>
    <option value="177">سمنان : پشتیبانی سیستم جامع</option>
    <option value="182">سمنان : آزمایشی</option>
    <option value="191">سمنان : سمنان - مرکز مهر 2</option>

</select>

4 个答案:

答案 0 :(得分:0)

希望这就是你所需要的。

Student.CenterID = Convert.toInt32(CenterDropDownList.SelectedValue); 

答案 1 :(得分:0)

下拉列表必须像这样绑定

CenterDropDownList.DataSource = centerInfoList;
CenterDropDownList.DataTextField = "CenterName";
CenterDropDownList.DataValueField = "ID";
CenterDropDownList.DataBind();

在此代码之后,您只能执行

CenterDropDownList.SelectedValue = Student.CenterID.ToString();

或者

CenterDropDownList.Items.FindByValue(Student.CenterID.ToString()).Selected = true;

并确保Student.CenterID的值应该在CenterDropDownList的ID字段中

试着告诉我......

答案 2 :(得分:0)

我替换了这个:

CenterNameDropDownList.DataSource = Data.CenterDB.GetCenterByCityId(city.ID);

用这个:

 foreach (CenterInfo centerInfo in Data.CenterDB.GetCenterByCityId(city.ID))
                {
                    ListItem listitem = new ListItem();
                    listitem.Value = centerInfo.ID.ToString();
                    listitem.Text = centerInfo.CenterName;
                    CenterNameDropDownList.Items.Add(listitem);
                }

它有效,但真的没有别的办法吗?

答案 3 :(得分:0)

CenterDropDownList.SelectedValue = Student.CenterID.ToString();

try
{
   CenterDropDownList.Items.FindByValue(Student.CenterID.ToString()).Selected = true;
}
finally
{

}