我的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>
答案 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
{
}