关于下拉菜单(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的用法!