DropDownList控件的使用


关于下拉菜单(dropdownlist)一些用法

 

DropDownListWeb控件创建一个包含多个选项的下拉列表,用户可以从中选择一个选项。

 

1,动态绑定数据(datatable绑定)


 #region 绑定设置dropdownlist的值
        /// <summary>
        /// 绑定设置dropdownlist的值
        /// </summary>
        /// <param name="ddl"></param>
        /// <param name="dt"></param>
        private void SetDropDownList(DropDownList ddl, DataTable dt)
        {
            //清空原有数据
            ddl.Items.Clear();
            //判断是否有需要填充的数据,有则填充
            if (dt.Rows.Count > 0)
            {
                ddl.DataSource = dt;//绑定数据源
                ddl.DataValueField = dt.Columns[0].ToString();//绑定数据项Value
                ddl.DataTextField = dt.Columns[2].ToString();//绑定数据项Text
                ddl.DataBind();//绑定
            }

            ddl.Items.Add(new ListItem("请选择", ""));//填充请【选择项】
            ddl.SelectedIndex = ddl.Items.Count - 1;//选中【请选择】项
        }

 #endregion


若要指定绑定后的数据选定项可使用

DropDownList.Items.FindByText("name").Selected=true或者

DropDownList.Items.FindByValue("code").Selected=true


另外也可从数据库中获得选定项(比如修改信息的时候)

可使用先用数据库填充一个DateSet--ds,然后使用DropDownList.Items.FindByValue/*或者FindByText*/(ds.Tables[0].Rows[0].ItemArray[0].ToString()).Selected=true;

 

实际应用:

1,从查询页面中点击编辑跳转到编辑页面

2,编辑完成,提示修改成功后,跳转到查询页面的跳转的状态

 

查询页面:


        /// <summary>
        /// 点击编辑,获取编辑的id, 即须知id
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void lbtnEdit_Click(object sender, EventArgs e)
        {
            LinkButton editbtn = (LinkButton)sender;
            string ExamID = DropExam.SelectedItem.Value;
            //获取被编辑字典的ID
            string NoticeID = editbtn.CommandArgument.ToString();
            Response.Redirect("ExamNotice.aspx?NoticeID=" + NoticeID + "&ExamID=" + ExamID);
            //"ModifyExamStudentInformation.aspx?StudentNo=" + parmStr[0] + "&ExamMainID=" + parmStr[1]
        }


修改页面:

                /// <summary>
	        /// 点击修改
	        /// </summary>
	        /// <param name="sender"></param>
	        /// <param name="e"></param>
	        protected void btnOK_Click(object sender, EventArgs e)
	        {
	            try
	            {
	
	                TeaExamInformationBLL teaExamInformationBLL = new TeaExamInformationBLL();
	                //定义一个考试申请实体类
	                string NoticeID = Request.QueryString["NoticeID"];
	                string ExamID = Request.QueryString["ExamID"];
	                ExamNoticeEntity enExamNotice = new ExamNoticeEntity();
	                enExamNotice.NoticeID = NoticeID;
	                enExamNotice.Notice = txtContent.Text;
	                enExamNotice.IsNoUse = IsUse.SelectedItem.Text;
	                enExamNotice.NoticeName = txtNoticeName.Text;
	                //enExamNotice.AddUser = "何静媛";
	                enExamNotice.AddUser = Session["UserName"].ToString();
	                //enExamNotice.IsNoDefault = IsDefault.SelectedItem.Text;
	                //声明错误枚举
	                ConfirmInfo flagUpdateExamNotice;
	                //判断如果想要设置默认须知
	                flagUpdateExamNotice = teaExamInformationBLL.UpdateExamInformation(enExamNotice);
	                if (ConfirmInfo.Success == flagUpdateExamNotice)
	                {
	                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('修改考试须知信息成功!');</script>");
	                    //修改成功
	                    //Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "location.href='SearchInformation.aspx?ExamID='" + ExamID, true);
	                    Response.Redirect("SearchInformation.aspx");
	
	
	                }
	                //代码已经存在
	                else if (ConfirmInfo.Exists == flagUpdateExamNotice)
	                {
	                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('修改为默认须知失败!');</script>");
	                }
	                else
	                {
	                    Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('修改考试须知信息失败!');</script>");
	                }
	            }
	            catch (Exception ex)
	            {
	                MessageBox.Show(this.Page, ex.Message);
	            }
	
	        }


点击修改,修改成功后,跳转回查询页面:

 protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["UserNO"] != null)
            {
              
                if (!IsPostBack)
                {
                    //页面首次加载时给表格绑定数据

                    BindAllCollege();
                    //判断学院的下拉框是否为空,即判断session中的学院是否为空
                    if (Session["SelectedCollegeID"] == null)
                    {
                        BindAllCollege();

                    }                      
                    else
                    {
                        //如果学院的session中不为空,则将下拉框加载上数据,并附上选中项
                        BindAllCollege();
                        //先清空选中项
                        DropDep.ClearSelection();
                        //给下拉框赋上选中项
                        DropDep.Items.FindByValue(Session["SelectedCollegeID"].ToString()).Selected = true;
                        //DropExamRoom.Items.FindByText(ExamRoom).Selected = true;

                        BindCourseByID();
                        DropCourse.ClearSelection();
                        DropCourse.Items.FindByValue(Session["SelectedCourseID"].ToString()).Selected = true;

                        BindExamByCourseID();
                        DropExam.ClearSelection();
                        DropExam.Items.FindByValue(Session["SelectedExamID"].ToString()).Selected = true;

                        //定义B层类
                        TeaExamInformationBLL teaExamInformationBLL = new TeaExamInformationBLL();
                        //定义一个考试须知实体类
                        TR_ExamNoticeEntity enExamNoticeRelative = new TR_ExamNoticeEntity();
                        enExamNoticeRelative.ExamID = DropExam.SelectedItem.Value;
                        enExamNoticeRelative.AddUser = Session["UserName"].ToString();
                        //enExamNoticeRelative.AddUser = "何静媛";

                        DataTable dtExamNotice = teaExamInformationBLL.QueryExamInformation(enExamNoticeRelative);
                        if (dtExamNotice.Rows.Count == 0)
                        {
                            //MessageBox.Show(this, "此考试下还未添加考试须知!系统默认应用默认须知");
                            lblMessage.Text = "此考试下还未添加考试须知!系统默认应用默认须知";
                        }
                        repExamNotic.DataSource = dtExamNotice;
                        repExamNotic.DataBind();

                    }
                }
            }
            else
            {
                Response.Redirect("../../Student/StuLogin.aspx");
            }     
           
        }


2.查询用法


对于单个下拉菜单查询我一般直接使用SelectedIndexChanged事件,使用这个事件千万别忘记把下拉菜单的AutoPostBack属性设为true! 


        /// <summary>
        /// 学院变化时加载课程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void dropCollege_SelectedIndexChanged(object sender, EventArgs e)
        {
            //绑定课程
            BindCourseByID();
        }

 #region 绑定学院

        /// <summary>
        /// 绑定学院
        /// </summary>
        private void BindAllCollege()
        {
            DataTable dtCollege = new DataTable();
            BasicSystemBLL BasicSystemBll = new BasicSystemBLL();
            dtCollege = BasicSystemBll.GetAllCollege();

            //判断是否有学院
            if (dtCollege.Rows.Count == 0)
            {
                MessageBox.Show(this, "没有学院,请联系管理员!");
                DropDep.Items.Clear();
                //dropDepartment.Items.Clear();
                DropCourse.Items.Clear();
                DropExam.Items.Clear();
                //DropExamRoom.Items.Clear();
            }
            else
            {
                SetDropDownList(DropDep, dtCollege);
                DropExam.Items.Clear();
                //DropExamRoom.Items.Clear();
            }
        }

 #endregion

3,添加用法

 

添加DorpDownList控件的Item子项的三种方法

 

 

DropDownList控件的SelectedItem对象表示在执行过程中被选中的Item

Item项拥有三个属性。其一为Text,其二为Value它们分别表示Item项所显示的文字与所表示的值,如果Value属性没有设置,则默认Value属性值等Text属性,第三个属性Selected则用于判断某Item项是否被选中添加DorpDownList控件的Item子项。

 

 

添加DorpDownList控件的Item子项的方法有三种:

 

 

第一种:使用<asp:ListItem>方法

 

<asp:DropDownList id="weste" runat="server">
          <asp:ListItem Value="0">小学</asp:ListItem>
          <asp:ListItem Value="1">中学</asp:ListItem>
          <asp:ListItem Value="2">大学</asp:ListItem>
</asp:DropDownList>

第二种:使用Items属性的Add方法1

 

DropDownList.Items.Add(ItemText)

 

Items属性表示DropDownList控件所有Item项的集合,Add操作既是在这个集合中插入新的Item项。第二种方法用于只设定Item项的Text属性(实际上也指定了Value属性,此时Value属性值等于Text属性值)。

 

第三种:使用Items属性的Add方法2

 

DropDownListItems.Add(newListItem(ItemText,ItemValue))

 

第三种方法同时设定了Item项的Text属性与Value属性,它是通过添加一个ListItem类来实现的。ListItem类使用了两个参数,第一个参数表示Text属性值,第二个参数表示Value属性值。



DropDownList要加载之后要按照我们查到的数据显示,这只是一种方式,可能还会有更好的方法,在这里只是提供一种方式,也多方面了解一下DropDownList的用法!

 



你可能感兴趣的:(DropDownList控件的使用)