list写三级联动
前台:
<div> <table> <tr> <td>地址:</td> <td> <asp:DropDownList ID="dropProvince" runat="server" AutoPostBack="True" onselectedindexchanged="dropProvince_SelectedIndexChanged"> </asp:DropDownList>省 </td> <td> <asp:DropDownList ID="dropCity" runat="server" AutoPostBack="True" onselectedindexchanged="dropCity_SelectedIndexChanged"> </asp:DropDownList>市 </td> <td> <asp:DropDownList ID="dropArea" runat="server"> </asp:DropDownList>县 </td> </tr> </table>
后台:
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BLL.province bll_Province = new BLL.province(); List<Model.province> list = bll_Province.GetListModel(); dropProvince.DataSource = list; dropProvince.DataTextField = "provinceName"; dropProvince.DataValueField = "provinceID"; dropProvince.DataBind();
BLL.city bll_City = new BLL.city(); List<Model.city> listCity = bll_City.GetListCity("father='" + list[0].provinceID+ "'"); dropCity.DataSource = listCity; dropCity.DataTextField = "cityName"; dropCity.DataValueField = "cityID"; dropCity.DataBind();
BLL.area bll_Area = new BLL.area(); List<Model.area> listArea = bll_Area.GetlistArea("father='" + listCity[0].cityID + "'"); dropArea.DataSource = listArea; dropArea.DataTextField = "areaName"; dropArea.DataValueField = "areaID"; dropArea.DataBind();
} }
protected void dropProvince_SelectedIndexChanged(object sender, EventArgs e) { dropCity.Items.Clear(); dropArea.Items.Clear(); BLL.city bll_City = new BLL.city(); List<Model.city> list = bll_City.GetListCity("father='" +dropProvince.SelectedValue+ "'"); dropCity.DataSource = list; dropCity.DataTextField = "cityName"; dropCity.DataValueField = "cityID"; dropCity.DataBind(); }
protected void dropCity_SelectedIndexChanged(object sender, EventArgs e) { dropArea.Items.Clear(); BLL.area bll_Area = new BLL.area(); List<Model.area> list = bll_Area.GetlistArea("father='" + dropCity.SelectedValue + "'"); dropArea.DataSource = list; dropArea.DataTextField = "areaName"; dropArea.DataValueField = "areaID"; dropArea.DataBind(); }
三层的方法
BLL
public List<Model.province> GetListModel() { return dal.GetListModel(); }
Dal
public System.Collections.Generic.List<Model.province> GetListModel() { System.Collections.Generic.List<Model.province> list = new System.Collections.Generic.List<Model.province>(); DataTable dt = GetList("").Tables[0]; foreach (DataRow row in dt.Rows) { Model.province mpro = new Model.province(); mpro.id = Convert.ToInt32(row["Id"]); mpro.provinceID = row["provinceID"].ToString(); mpro.provinceName = row["provinceName"].ToString(); list.Add(mpro); } return list; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构