.net DropDownList静态联动
1.前台
- <span id="spnClient" style="margin-left: 30px; margin-top: 10px">
- <lable>Client: </lable>
- <asp:DropDownList ID="ddlClient" DataValueField="ID" DataTextField="NAME" runat="server" />
- </span>
- <span id="spnProject" style="margin-left: 30px; margin-top: 10px">
- <lable>Project: </lable>
- <asp:DropDownList ID="ddlProject" DataValueField="ID" DataTextField="NAME" runat="server" />
- </span>
- <span id="spnUser" style="display: none; margin-left: 30px; margin-top: 10px;">
- <lable>User: </lable>
- <asp:DropDownList ID="ddlUser" DataValueField="ID" DataTextField="USER_NAME" runat="server" />
- </span>
2.绑定DataSource
- private void LoadDropDownList()
- {
- DataTable dtYear =SplendidCache.Years();
- ddlYEAR.DataSource = dtYear;
- ddlYEAR.DataBind();
- ddlYEAR.SelectedValue = DateTime.Now.Year.ToString();
- DataTable dtClient = SplendidCache.Client(true);
- ddlClient.DataSource = dtClient;
- ddlClient.DataBind();
- DataTable dtProject = SplendidCache.Project();
- ddlProject.DataSource = dtProject;
- ddlProject.DataBind();
- DataTable dtUser = SplendidCache.AssignedUser();
- ddlUser.DataSource = dtUser;
- ddlUser.DataBind();
- BindProjects();
- BindUsers();
- }
- private void BindProjects()
- {
- DataTable dtProjects = new DataTable();
- DbProviderFactory dbf = DbProviderFactories.GetFactory();
- using (IDbConnection con = dbf.CreateConnection())
- {
- con.Open();
- using (IDbCommand cmd = con.CreateCommand())
- {
- string sSQL = "SELECT ID,NAME,CLIENTID FROM Project WHERE DELETED=0 ORDER BY NAME " + ControlChars.CrLf;
- cmd.CommandText = sSQL;
- using (DbDataAdapter da = dbf.CreateDataAdapter())
- {
- ((IDbDataAdapter)da).SelectCommand = cmd;
- da.Fill(dtProjects);
- StringBuilder sbProjects = new StringBuilder();
- if (dtProjects != null && dtProjects.Rows.Count > )
- {
- sbProjects.Append("{\"project\":[");
- int i = ;
- int count = dtProjects.Rows.Count;
- foreach (DataRow row in dtProjects.Rows)
- {
- if (i == count)
- {
- sbProjects.Append("{\"client\":\"" + Sql.ToString(row["CLIENTID"]) + "\",\"id\":\"" + Sql.ToString(row["ID"]) + "\",\"name\":\"" + Sql.ToString(row["NAME"]).Replace("'","‘") + "\"}");
- }
- else
- {
- sbProjects.Append("{\"client\":\"" + Sql.ToString(row["CLIENTID"]) + "\",\"id\":\"" + Sql.ToString(row["ID"]) + "\",\"name\":\"" + Sql.ToString(row["NAME"]).Replace("'", "‘") + "\"},");
- }
- i++;
- }
- sbProjects.Append("]");
- }
- sbProjects.Append("}");
- m_sProjectsJson = sbProjects.ToString();
- }
- }
- }
- }
- private void BindUsers()
- {
- DataTable dtUsers = new DataTable();
- DbProviderFactory dbf = DbProviderFactories.GetFactory();
- using (IDbConnection con = dbf.CreateConnection())
- {
- con.Open();
- using (IDbCommand cmd = con.CreateCommand())
- {
- string sSQL = "SELECT DISTINCT USER_ID,USER_NAME,PROJECT_ID FROM vwPROJECT_USERS WHERE USER_ID IS NOT NULL GROUP BY USER_ID,USER_NAME,PROJECT_ID ORDER BY USER_NAME" + ControlChars.CrLf;
- cmd.CommandText = sSQL;
- using (DbDataAdapter da = dbf.CreateDataAdapter())
- {
- ((IDbDataAdapter)da).SelectCommand = cmd;
- da.Fill(dtUsers);
- StringBuilder sbUsers = new StringBuilder();
- if (dtUsers != null && dtUsers.Rows.Count > )
- {
- sbUsers.Append("{\"user\":[");
- int i = ;
- int count = dtUsers.Rows.Count;
- foreach (DataRow row in dtUsers.Rows)
- {
- if (i == count)
- {
- sbUsers.Append("{\"project\":\"" + Sql.ToString(row["PROJECT_ID"]) + "\",\"id\":\"" + Sql.ToString(row["USER_ID"]) + "\",\"name\":\"" + Sql.ToString(row["USER_NAME"]) + "\"}");
- }
- else
- {
- sbUsers.Append("{\"project\":\"" + Sql.ToString(row["PROJECT_ID"]) + "\",\"id\":\"" + Sql.ToString(row["USER_ID"]) + "\",\"name\":\"" + Sql.ToString(row["USER_NAME"]) + "\"},");
- }
- i++;
- }
- sbUsers.Append("]");
- }
- sbUsers.Append("}");
- m_sUserJson = sbUsers.ToString();
- }
- }
- }
- }
- private static string m_sProjectsJson = "";
- public static string ProjectsJson
- {
- get { return m_sProjectsJson; }
- }
- private static string m_sUserJson = "";
- public static string UsersJson
- {
- get { return m_sUserJson; }
- }
3.javascript
- $("#<%=ddlClient.ClientID%>").change(function () {
- loadproject();
- });
- $("#<%=ddlProject.ClientID%>").change(function () {
- loaduser();
- });
- function loadproject() {
- var client = $("#<%=ddlClient.ClientID%>").val();
- var projectArray = jQuery.parseJSON('<%= ProjectsJson%>');
- var filtered = $.grep(projectArray.project,
- function (item) {
- if (client != "") {
- return item.client == client;
- }
- else {
- return item;
- }
- }
- );
- $("#<%=ddlProject.ClientID%>").empty();
- $.each(filtered, function (i, item) {
- $("#<%=ddlProject.ClientID%>").append("<option value='" + item.id + "'>" + item.name + "</option>");
- });
- }
- function loaduser() {
- var project = $("#<%=ddlProject.ClientID%>").val();
- var userArray = jQuery.parseJSON('<%= UsersJson%>');
- var filtered = $.grep(userArray.user,
- function (item) {
- if (project != "") {
- return item.project == project;
- }
- else {
- return item;
- }
- }
- );
- $("#<%=ddlUser.ClientID%>").empty();
- $.each(filtered, function (i, item) {
- $("#<%=ddlUser.ClientID%>").append("<option value='" + item.id + "'>" + item.name + "</option>");
- });
- }
.net DropDownList静态联动的更多相关文章
- DropDownList四级联动
前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="iframe_dro ...
- ASP .NET DropDownList多级联动事件
思路 假如有三级省.市.区,先加载出所有省选择省之后,加载出该省所有市选择市之后,加载出该市所有区重新选择省,则清空市和区重新选择市,则清空区想好数据结构,不同的数据结构做法不同 例子 数据结构 pu ...
- dropdownlist 二级联动
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { GradeBind(); } } //绑定 ...
- MVC学习系列7--下拉框的联动
[使用场景:两个DropDownList的联动,选择其中一个DropDownList,然后加载数据到另外的一个DropDownList上] 这里,我打算实现的需求是:有两个DropDownList,一 ...
- 用jquery+Asp.Net实现省市二级联动
页面html: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ddlAjax. ...
- MVC学习系列4--@helper辅助方法和用户自定义HTML方法
在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...
- WebForm使用JQuery实现DropDownList无刷新联动
目录(?)[-] 1 JS代码 2 页面相关控件用的是平台封装的控件普通DropDownList也可以 3 后台C代码 注意事项 原来用的微软封装的Ajax控件UpdatePannel和Scri ...
- 用DropDownList实现的省市级三级联动
这是一个用DropDownList 实现的省市级三级联动,记录一下········ <asp:ScriptManager ID="ScriptManager1" runat= ...
- MVC编辑状态两个DropDownList联动
前几天使用jQuery在MVC应用程序中,实现了<jQuery实现两个DropDownList联动(MVC)>http://www.cnblogs.com/insus/p/3414480. ...
随机推荐
- 9.JAVA中的正则表达式
一.JAVA中的正则表达式 1.概念:以某种特定的方式描述字符串 1.Java中正则表达式的规则 ? #{0,1}-?有一个-或者没有 \\ #表示一个" ...
- vue
vue.js 插件 setting--> plugins 搜索vue,下载安装如果想要高亮显示*.vue文件,可以在File Types 选项里找到HTML,然后在下方手动添加*.vue,这样就 ...
- Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...
- 关于vector的内存释放问题
以前一直想当然的以为vector 的clear()函数会保证释放vector的内存,今天网上一查资料发现完全不是我想象的那样子. 比如有如下代码: tempObject obj1; tempObjec ...
- linux xorddos样本分析2
逆向分析 之后我们通过ida对该样本进行更深入的分析样本的main函数中,一开始会调用函数dec_conf对样本中的大量加密的字符串进行解密,如下图所示.
- 《DSP using MATLAB》示例Example5.14
代码: x1 = [1,2,2]; x2 = [1,2,3,4]; y = circonvt(x1,x2,4) n1 = 0:1:length(x1)-1; n2 = 0:1:length(x2)-1 ...
- java基础-泛型2
浏览以下内容前,请点击并阅读 声明 6 类型推测 java编译器能够检查所有的方法调用和对应的声明来决定类型的实参,即类型推测,类型的推测算法推测满足所有参数的最具体类型,如下例所示: //泛型方法的 ...
- VBA找不到progress bar的处理办法。
Search your pc for MSCOMCTL.Ocx. If you find it then register it by clicking on Windows Start Button ...
- dedecms 时间标签strftime和MyDate
先说下内容页样式: 日期:{field:pubdate function=strftime('m-d',@me)/} 01-01 日期:{field:pubdate function=strftime ...
- Node.js用ES6原生Promise对异步函数进行封装
Promise的概念 Promise 对象用于异步(asynchronous)计算..一个Promise对象代表着一个还未完成,但预期将来会完成的操作. Promise的几种状态: pending:初 ...