首页 > 编程 > .NET > 正文

ASP.NET实现级联下拉框效果实例讲解

2024-07-10 13:29:22
字体:
来源:转载
供稿:网友

这篇文章主要介绍了ASP.NET实现级联下拉框效果实例,需要的朋友可以参考下

用ASP.NET控件实现部门和员工的联动,参考过程如下

ASP.NET实现级联下拉框效果实例讲解

Default.aspx代码:

 

 
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  2.  
  3. <!DOCTYPE html>  
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
  8. <title></title>  
  9. </head>  
  10. <body>  
  11. <form id="form1" runat="server">  
  12. <div>  
  13.  
  14. <asp:DropDownList ID="ddlDep" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlDep_SelectedIndexChanged">  
  15. </asp:DropDownList>  
  16. <br />  
  17. <asp:ListBox ID="lBoxEmp" runat="server"></asp:ListBox>  
  18.  
  19. </div>  
  20. </form>  
  21. </body>  
  22. </html> 

Default.aspx.cs代码:

 

 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.Data.SqlClient;  
  8.  
  9. public partial class _Default : System.Web.UI.Page  
  10. {  
  11. protected void Page_Load(object sender, EventArgs e)  
  12. {  
  13. if (!this.IsPostBack)  
  14. {  
  15. SqlConnection con = DBCon.createConnection();  
  16. con.Open();  
  17. //显示部门  
  18. SqlCommand cmd = new SqlCommand("select * from Tdepartment", con);  
  19. SqlDataReader sdr = cmd.ExecuteReader();  
  20. this.ddlDep.DataSource = sdr;  
  21. this.ddlDep.DataTextField = "depName";  
  22. this.ddlDep.DataValueField = "depID";  
  23. this.ddlDep.DataBind();  
  24. sdr.Close();  
  25. //显示员工  
  26. SqlCommand cmdEmp =new SqlCommand ("select * from emp where depID=" + this.ddlDep .SelectedValue ,con);  
  27. SqlDataReader sdrEmp = cmdEmp.ExecuteReader();  
  28. while (sdrEmp.Read())  
  29. {  
  30. this.lBoxEmp.Items.Add (new ListItem(sdrEmp.GetString(1),sdrEmp .GetInt32 (0).ToString ()));  
  31. }  
  32. sdrEmp.Close();  
  33. //关闭连接  
  34. con.Close();  
  35. }  
  36. }  
  37. protected void ddlDep_SelectedIndexChanged(object sender, EventArgs e)  
  38. {  
  39. this.lBoxEmp.Items.Clear();  
  40. SqlConnection con = DBCon.createConnection();  
  41. con.Open();  
  42. SqlCommand cmdEmp = new SqlCommand("select * from emp where depID=" + this.ddlDep.SelectedValue, con);  
  43. SqlDataReader sdrEmp = cmdEmp.ExecuteReader();  
  44. while (sdrEmp.Read())  
  45. {  
  46. this.lBoxEmp.Items.Add(new ListItem(sdrEmp.GetString(1), sdrEmp.GetInt32(0).ToString()));  
  47. }  
  48. sdrEmp.Close();  
  49. //关闭连接  
  50. con.Close();  
  51. }  
  52. }  

DBCon.cs代码

 

 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Data.SqlClient;  
  6.  
  7. /// <summary>  
  8. /// DBCon 的摘要说明  
  9. /// </summary>  
  10. public class DBCon  
  11. {  
  12. public DBCon()  
  13. {  
  14. //  
  15. // TODO: 在此处添加构造函数逻辑  
  16. //  
  17. }  
  18. public static SqlConnection createConnection()  
  19. {  
  20. SqlConnection con = new SqlConnection("server=.;database=department;uid=sa;pwd=123456");  
  21. return con;  
  22. }  
  23. }  

使用Asp.net控件实现比较简单,但在大量用户使用的情况下最好不要使用,不断向服务器请求会给服务器带来很大的负担。使用JQuery和ajax实现可以有动态效果,实现过程比较复杂,但有数据缓冲和ajax局部刷新可以减少服务器的负担,JQuery实现级联下拉框效果,参考这篇文章:http://www.vevb.com/article/72366.htm

以上就是ASP.NET实现级联下拉框效果实例讲解,希望大家可以学以致用。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表