日期:2014-05-18  浏览次数:20456 次

如何在后台生成一个option时,选中我想要选中的项?
<select id="zgxl" name="zgxl" style="WIDTH: 200px">
<option value="">--请选择--</option>
<option value="<%=zgxl2 %>" selected="selected"><%=zgxl2%></option>
<%getXLOption(); %>

这是我在前台的代码。

protected void getXLOption()
{
  HY_GRXX grxx = this.GetHY_GRXX();
  DM_Mgr mgr = new DM_Mgr(new DM_XL());
  DataTable dtXl = mgr.GetDataTable();
  for (int i = 0; i < dtXl.Rows.Count; i++)
  {
  Response.Write("<option value='" + dtXl.Rows[i]["XL_DM"].ToString() + "'");

  Response.Write("> " + dtXl.Rows[i]["XL_SM"].ToString() + " </option>");
  }
}
我想要的是在后台的两个Response.Write之间加一个if判断,在生成option时就传入zgxl2这个对象,选中的效果和在前台写
<option value="<%=zgxl2 %>" selected="selected"><%=zgxl2%></option>一样,这样在前台就不需要这样写了,这个if
判断该怎么写呢???

------解决方案--------------------
前台:
<select id="zgxl" name="zgxl" style="WIDTH: 200px" runat="server">
</select>

后台:
HY_GRXX grxx = this.GetHY_GRXX(); 
DM_Mgr mgr = new DM_Mgr(new DM_XL()); 
DataTable dtXl = mgr.GetDataTable(); 
for (int i = 0; i < dtXl.Rows.Count; i++) 

this.zgxl.Items.Add(new ListItem(dtXl.Rows[i]["XL_SM"].ToString(),dtXl.Rows[i]["XL_DM"].ToString() );
}
this.zgxl.Items.FindByValue(zgxl2).Selected = true;