ASP.NET中实现无刷新级联

最近在帮学校做一个设备报修系统,由于水平有限,以前做项目的时候很少用到ajax方面的知识,为了实现更好的效果,我查阅了相关资料,参考网上教程写了我下面的程序,不足之处,请多多指正。

开发环境配置为:Visual Studio 2008 Sql  Server 2008

源码下载地址:无刷新级联

1、建立测试数据库

用到两个表,一个所在部门表 Department,一个使用部门表 UseDepart

表:Department

image

表:UseDepart

image

2、新建一个MyClass类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MyClass
{
    public DataSet GetList(string table, string where)
    {
        string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select * from ").Append(table);
            if (!string.IsNullOrEmpty(where))
            {
                strSql.Append(" where ").Append(where);
            }
            using (SqlCommand cmd = new SqlCommand(strSql.ToString(), conn))
            {
                conn.Open();
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = cmd;
                da.Fill(ds, "ds");
                return ds;
            }
        }
    }
}

3、Default.aspx页面代码JavaScript代码

1
2
3
4
5
6
7
8
9
<script type="text/javascript">
    $(function() {
        $("#<%=ddlDepartment.ClientID %>").change(
        function() {
            $("#ddlUseDepart").load("LoadUseDepart.aspx?InDepartId=" + $("#" + "<%= ddlDepartment.ClientID %>" + " option:selected").val());
        }
        );
    });
</script>

4、LoadUseDepart.aspx后台代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
protected void Page_Load(object sender, EventArgs e)
{
    int id;
    if (int.TryParse(Request.Params["InDepartId"].ToString(), out id))
    {
        Response.Write(GetUseDepart(id));
        Response.End();
    }
}
 
private string GetUseDepart(int id)
{
    StringBuilder sb = new StringBuilder();
    DataSet ds = new MyClass().GetList("UseDepart", "DepartId=" + id);
    if (ds.Tables.Count > 0)
    {
        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
        {
            sb.Append("<option value='" + ds.Tables[0].Rows[i]["Id"].ToString() + "'>" + ds.Tables[0].Rows[i]["Name"].ToString() + "</option>");
        }
    }
    return sb.ToString();
}
posted @   BobTian  阅读(976)  评论(3编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示