這篇博客主要說一下DropDownList綁定數據庫表中數據,及選擇相應DropDownList表中的值會根據此值從數據庫中查詢相應的數據信息。
一、簡單介紹一下我要實現的功能
我要實現的功能簡單界面:
我要實現的功能:校區旁邊的下拉列表我使用的是DropDownList控件,頁面加載時DropDownList會綁定從數據庫中查詢出的校區信息,然後根據校區值的選取,在下面多標籤欄中顯示相應的建築信息。
二、簡單介紹下DropDownList綁定數據及根據其值查詢建築信息的實現
1.在.aspx頁面拖入DropDownList控件
- <label class="txt-green">校區:</label>
- <asp:DropDownList ID="ddlCampus" Width="120px" Height="25px" runat="server"
- AutoPostBack="True" onselectedindexchanged="ddlCampus_SelectedIndexChanged">
- </asp:DropDownList>
2.在.aspx.cs頁面中,編寫DropDownList綁定數據庫表值的方法
我採用三層架構方法,這裏只介紹界面層的實現
- #region 綁定現存校區信息
- private void bindCampus()
- {
- //調用建築業務邏輯層,查詢現存校區信息
- DataTable dtCampus = new BuildingBLL().QueryCampus();
- //綁定校區信息,並添加新行
- //綁定校區信息
- ddlCampus.DataSource = dtCampus;
- //校區名
- ddlCampus.DataTextField = "CampusName";
- //校區ID
- ddlCampus.DataValueField = "CampusID";
- ddlCampus.DataBind();
- ddlCampus.Items.Insert(0, new ListItem("", ""));//插入空項,此項必須放到數據綁定之後
- }
- #endregion
3.在.aspx.cs頁面的Form_Load事件中調用DropDownList綁定數據庫表值的方法
- protected void Page_Load(object sender, EventArgs e)
- {
- //頁面第一次加載時;必須加上 if (!IsPostBack),
- //否則校區下拉列表根據指定校區查詢建築信息,校區只會綁定校區下拉列表首行數據的ID
- if (!IsPostBack)
- {
- //綁定現存校區信息
- bindCampus();
- //綁定查詢所有建築信息(校區ID爲空)
- bindAllBuilding();
- }
- }
4.根據DropDownList中選擇的值,相應顯示查詢的建築信息的實現方法
更改DropDownList的AutoPostBack屬性值爲True。然後再DropDownList的“SelectedIndexChanged”事件中編寫查詢建築信息的方法。
- //隨着下拉框中值的改變,選擇相應的現存、已撤銷、徹底刪除信息
- protected void ddlCampus_SelectedIndexChanged(object sender, EventArgs e)
- {
- //獲取下拉框校區名對應的校區ID:下面兩行代碼都可用
- string strCampusID = ddlCampus.SelectedItem.Value;
- //string strCampusID1 = ddlCampus.SelectedValue;
- //校區實體
- CampusEntity enCampus = new CampusEntity();
- if ("" == strCampusID)
- {
- //如果校區爲空,則查詢各校區全部現存、已撤銷、徹底刪除的建築信息
- //校區ID爲空
- enCampus.CampusID = "";
- #region 綁定現存、已撤銷、徹底刪除全部建築信息
- //現存信息
- //調用BLL層查詢現存建築信息的方法
- DataTable dtBuilding = new BuildingBLL().QueryBuilding(enCampus);
- //綁定現存建築信息
- repNowBuilding.DataSource = dtBuilding;
- repNowBuilding.DataBind();
- // 綁定撤銷建築信息
- repCanceledBuilding.DataSource = new BuildingBLL().QueryCancelBuilding(enCampus);
- repCanceledBuilding.DataBind();
- // 綁定徹底刪除的課程類型數據數據
- repDeletedBuilding.DataSource = new BuildingBLL().QueryDeleteBuilding(enCampus);
- repDeletedBuilding.DataBind();
- #endregion
- }
- else
- {
- //如果校區不爲空,則查詢相應校區的現存、已撤銷、徹底刪除的建築信息
- //校區ID不爲空,校區ID來自下拉列表選擇的值
- enCampus.CampusID = strCampusID;
- #region 綁定現存、已撤銷、徹底刪除全部建築信息
- //現存信息
- //調用BLL層查詢現存建築信息的方法
- DataTable dtBuilding = new BuildingBLL().QueryBuilding(enCampus);
- //綁定現存建築信息
- repNowBuilding.DataSource = dtBuilding;
- repNowBuilding.DataBind();
- // 綁定撤銷建築信息
- repCanceledBuilding.DataSource = new BuildingBLL().QueryCancelBuilding(enCampus);
- repCanceledBuilding.DataBind();
- // 綁定徹底刪除的課程類型數據數據
- repDeletedBuilding.DataSource = new BuildingBLL().QueryDeleteBuilding(enCampus);
- repDeletedBuilding.DataBind();
- #endregion
- }
- }
-
注意點:1.DropDownList列表綁定數據時添加空行的實現。只一行代碼
2.因需要根據下拉列表選定值查詢相應建築信息,於是將AutoPostBack屬性置爲True,這時需要在Form_Load中加上if(!IsPostBack)的判斷,不加入此判斷,“SelectedIndexChanged”事件中校區ID會一直獲取的是下拉列表的首行ID。
原文地址:http://blog.csdn.net/mazhaojuan/article/details/8529782