我采用三层架构方法
前台
<asp:DropDownList ID="ddlDeviceType" runat="server" AutoPostBack="True" > </asp:DropDownList>
------------------------------------------------------------------------------------------
后台
- //页面第一次加载时;必须加上 if (!IsPostBack),
- //否则校区下拉列表根据指定校区查询建筑信息,校区只会绑定校区下拉列表首行数据的ID
if (!IsPostBack)
{
InitData();
}
protected void InitData()
{
ELEC.Cloud.BLL.TDeviceType bll = new ELEC.Cloud.BLL.TDeviceType();
DataTable dt = bll.GetAllList().Tables[0];
//ddlDeviceType.DataSource = bll.GetAllList().Tables[0].DefaultView;
//ddlDeviceType.DataTextField = "TypeName";
//ddlDeviceType.DataValueField ="TypeID";
ddlDeviceType.DataSource = dt;
ddlDeviceType.DataTextField =dt.Columns[1].ColumnName;
ddlDeviceType.DataValueField = dt.Columns[0].ColumnName;
ddlDeviceType.DataBind();
ddlDeviceType.Items.Insert(0, new ListItem("", ""));//插入空项,此项必须放到数据绑定之后
}
另一种方法比较灵活:
ELEC.Cloud.BLL.TDeviceType bll = new ELEC.Cloud.BLL.TDeviceType();
var list = bll.GetModelList("");
foreach (var o in list)
{
ddlDeviceType.Items.Add(new ListItem(DEncrypt.DecodeBase64(o.TypeName), o.TypeID.ToString()));//这种方法解决数据库加密的问题,如果数据不加密码,两种方法均可。
}