0

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

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

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

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

但它不起作用,因为下拉值实际上是 int 类型,而选定的值是 string 类型。我能做些什么呢?

我的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

4 回答 4

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 字段中

试着让我知道..

于 2013-10-01T08:38:05.213 回答
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);
                }

它工作,但真的没有其他办法吗?

于 2013-10-01T09:30:37.253 回答
0

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

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

}
于 2013-10-01T13:03:31.037 回答
0

希望这是你需要的。

Student.CenterID = Convert.toInt32(CenterDropDownList.SelectedValue); 
于 2013-10-01T08:15:24.680 回答