ASP.NET中DropDownList控件的簡單使用--DDL綁定數據庫表中值,選擇DDL中值直接檢索數據

這篇博客主要說一下DropDownList綁定數據庫表中數據,及選擇相應DropDownList表中的值會根據此值從數據庫中查詢相應的數據信息。

    

 一、簡單介紹一下我要實現的功能

     我要實現的功能簡單界面:

   我要實現的功能:校區旁邊的下拉列表我使用的是DropDownList控件,頁面加載時DropDownList會綁定從數據庫中查詢出的校區信息,然後根據校區值的選取,在下面多標籤欄中顯示相應的建築信息。


二、簡單介紹下DropDownList綁定數據及根據其值查詢建築信息的實現 

     1.在.aspx頁面拖入DropDownList控件

  1. <label class="txt-green">校區:</label>  
  2. <asp:DropDownList ID="ddlCampus" Width="120px" Height="25px" runat="server"   
  3.     AutoPostBack="True" onselectedindexchanged="ddlCampus_SelectedIndexChanged">  
  4. </asp:DropDownList>  

     2.在.aspx.cs頁面中,編寫DropDownList綁定數據庫表值的方法

       我採用三層架構方法,這裏只介紹界面層的實現

  1. #region 綁定現存校區信息  
  2.     private void bindCampus()  
  3.     {  
  4.         //調用建築業務邏輯層,查詢現存校區信息  
  5.         DataTable dtCampus = new BuildingBLL().QueryCampus();  
  6.   
  7.         //綁定校區信息,並添加新行  
  8.   
  9.         //綁定校區信息  
  10.         ddlCampus.DataSource = dtCampus;  
  11.         //校區名  
  12.         ddlCampus.DataTextField = "CampusName";  
  13.         //校區ID  
  14.         ddlCampus.DataValueField = "CampusID";  
  15.         ddlCampus.DataBind();  
  16.   
  17.         ddlCampus.Items.Insert(0, new ListItem("", ""));//插入空項,此項必須放到數據綁定之後  
  18.     }  
  19.     #endregion  

     3.在.aspx.cs頁面的Form_Load事件中調用DropDownList綁定數據庫表值的方法

  1. protected void Page_Load(object sender, EventArgs e)  
  2.     {  
  3.         //頁面第一次加載時;必須加上 if (!IsPostBack),  
  4.         //否則校區下拉列表根據指定校區查詢建築信息,校區只會綁定校區下拉列表首行數據的ID  
  5.         if (!IsPostBack)  
  6.         {  
  7.             //綁定現存校區信息  
  8.             bindCampus();  
  9.   
  10.             //綁定查詢所有建築信息(校區ID爲空)  
  11.             bindAllBuilding();  
  12.         }  
  13.     }  

     4.根據DropDownList中選擇的值,相應顯示查詢的建築信息的實現方法

更改DropDownList的AutoPostBack屬性值爲True。然後再DropDownList的“SelectedIndexChanged”事件中編寫查詢建築信息的方法。

  1. //隨着下拉框中值的改變,選擇相應的現存、已撤銷、徹底刪除信息  
  2.     protected void ddlCampus_SelectedIndexChanged(object sender, EventArgs e)  
  3.     {  
  4.         //獲取下拉框校區名對應的校區ID:下面兩行代碼都可用  
  5.         string strCampusID = ddlCampus.SelectedItem.Value;  
  6.         //string strCampusID1 = ddlCampus.SelectedValue;  
  7.   
  8.         //校區實體  
  9.         CampusEntity enCampus = new CampusEntity();  
  10.   
  11.         if ("" == strCampusID)  
  12.         {  
  13.             //如果校區爲空,則查詢各校區全部現存、已撤銷、徹底刪除的建築信息  
  14.   
  15.             //校區ID爲空  
  16.             enCampus.CampusID = "";  
  17.   
  18.             #region 綁定現存、已撤銷、徹底刪除全部建築信息  
  19.             //現存信息  
  20.             //調用BLL層查詢現存建築信息的方法  
  21.             DataTable dtBuilding = new BuildingBLL().QueryBuilding(enCampus);  
  22.             //綁定現存建築信息  
  23.             repNowBuilding.DataSource = dtBuilding;  
  24.             repNowBuilding.DataBind();  
  25.   
  26.             // 綁定撤銷建築信息  
  27.             repCanceledBuilding.DataSource = new BuildingBLL().QueryCancelBuilding(enCampus);  
  28.             repCanceledBuilding.DataBind();  
  29.   
  30.             // 綁定徹底刪除的課程類型數據數據  
  31.             repDeletedBuilding.DataSource = new BuildingBLL().QueryDeleteBuilding(enCampus);  
  32.             repDeletedBuilding.DataBind();  
  33.             #endregion  
  34.         }  
  35.         else  
  36.         {  
  37.   
  38.             //如果校區不爲空,則查詢相應校區的現存、已撤銷、徹底刪除的建築信息  
  39.   
  40.             //校區ID不爲空,校區ID來自下拉列表選擇的值  
  41.             enCampus.CampusID = strCampusID;  
  42.   
  43.             #region 綁定現存、已撤銷、徹底刪除全部建築信息  
  44.             //現存信息  
  45.             //調用BLL層查詢現存建築信息的方法  
  46.             DataTable dtBuilding = new BuildingBLL().QueryBuilding(enCampus);  
  47.             //綁定現存建築信息  
  48.             repNowBuilding.DataSource = dtBuilding;  
  49.             repNowBuilding.DataBind();  
  50.   
  51.             // 綁定撤銷建築信息  
  52.             repCanceledBuilding.DataSource = new BuildingBLL().QueryCancelBuilding(enCampus);  
  53.             repCanceledBuilding.DataBind();  
  54.   
  55.             // 綁定徹底刪除的課程類型數據數據  
  56.             repDeletedBuilding.DataSource = new BuildingBLL().QueryDeleteBuilding(enCampus);  
  57.             repDeletedBuilding.DataBind();  
  58.             #endregion  
  59.         }  
  60.   

  1.     }  
  2. 注意點:1.DropDownList列表綁定數據時添加空行的實現。只一行代碼

               2.因需要根據下拉列表選定值查詢相應建築信息,於是將AutoPostBack屬性置爲True,這時需要在Form_Load中加上if(!IsPostBack)的判斷,不加入此判斷,“SelectedIndexChanged”事件中校區ID會一直獲取的是下拉列表的首行ID。

    原文地址:http://blog.csdn.net/mazhaojuan/article/details/8529782

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章