省市地区的三级联动,每变更一次所选地都需要提交,但是又不需要把整个页面提交,所以我们需要使用控件:UdataPanel。工具--AJAX扩展

还有ScriptManager,并要将其放在页面的最顶端。

DropDownList则需要放在UpdatePanel中:

HTML源:

<body>
<form id="form1" runat="server">
<div> <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager> </div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddl_sheng" runat="server" AutoPostBack="true" DataTextField="Name" DataValueField="ParentId" OnSelectedIndexChanged="ddl_sheng_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddl_shi" runat="server" AutoPostBack="true" DataTextField="Name" DataValueField="ParentId" OnSelectedIndexChanged="ddl_shi_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddl_diqu" runat="server" DataTextField="Name" DataValueField="ParentId" OnSelectedIndexChanged="ddl_diqu_SelectedIndexChanged">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>

需要注意的是,在DropDownList的标签中,必须把AutoPostBack的属性设置为 true,自动回发数据。

DataTextField="Name" DataValueField="ParentId"

则是用来绑定显示的Text以及值Value。

cs中的代码:

DiquDataContext diqu=new DiquDataContext();//外部定义LINQ方便使用

    protected void Page_Load(object sender, EventArgs e)
{
//第一次加载时才会走这里,必须要有,否则每次改动选择值时加载都会显示第一次加载的数据
if (!IsPostBack)
{
getsheng();
getshi();
getdiqu();
}
}
/// <summary>
/// 绑定省
/// </summary>
public void getsheng()//省
{
var va = diqu.Members.Where(m => (m.ParentId.ToString().Length == 2));
ddl_sheng.DataSource = va;
ddl_sheng.DataTextField = "Name";
ddl_sheng.DataValueField = "ParentId";
ddl_sheng.DataBind();
}
/// <summary>
/// 绑定市
/// </summary>
public void getshi()//市
{
string ss = ddl_sheng.SelectedValue;//获取显示的省的值。
var sh = diqu.Members.Where(m => (m.ParentId.ToString().Length == 4) && (m.ParentId.ToString().Substring(0, 2) == ss));
ddl_shi.DataSource = sh;
ddl_shi.DataTextField = "Name";
ddl_shi.DataValueField = "ParentId";
ddl_shi.DataBind();
}
/// <summary>
/// 绑定地区
/// </summary>
public void getdiqu()
{
string ss = ddl_shi.SelectedValue;//获取显示的省的值。
var sh = diqu.Members.Where(m => (m.ParentId.ToString().Length == 6) && (m.ParentId.ToString().Substring(0, 4) == ss));
ddl_diqu.DataSource = sh;
ddl_diqu.DataTextField = "Name";
ddl_diqu.DataValueField = "ParentId";
ddl_diqu.DataBind(); }
protected void ddl_shi_SelectedIndexChanged(object sender, EventArgs e)
{
getdiqu();
}
protected void ddl_sheng_SelectedIndexChanged(object sender, EventArgs e)
{
getshi();
getdiqu();
}
protected void ddl_diqu_SelectedIndexChanged(object sender, EventArgs e)
{
}

20150303--从SQL中获取数据的三级联动的更多相关文章

  1. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

  2. hive从查询中获取数据插入到表或动态分区

    Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中.现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两 ...

  3. Sql 中获取年月日时分秒的函数

    getdate():获取系统当前时间 dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate()) ...

  4. Thymeleaf+SpringMVC,如何从模板中获取数据

    Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...

  5. sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别

    原文:sql 中获取最后生成的标识值 IDENT_CURRENT ,@@IDENTITY ,SCOPE_IDENTITY 的用法和区别 IDENT_CURRENT 返回为任何会话和任何作用域中的指定表 ...

  6. Sql中获取表结构(字段名称,类型,长度,说明)

    Sql中获取表结构(字段名称,类型,长度,说明) SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Descript ...

  7. 哪种方式更适合在React中获取数据?

    作者:Dmitri Pavlutin 译者:小维FE 原文:dmitripavlutin.com 国外文章,笔者采用意译的方式,以保证文章的可读性. 当执行像数据获取这样的I/O操作时,你必须发起获取 ...

  8. Django Form 实时从数据库中获取数据

    修改 models.py 添加 class UserType(models.Model): caption = models.CharField(max_length=32) 执行命令,生成数据库 p ...

  9. SpringMVC从Request域中获取数据

    SpringMVC从Request域中获取数据的三种方式 SpringMVC环境自行搭建, 约定存在如下目录和文件:/WEB-INF/pages/success.jsp 方式一:传入Model对象 前 ...

随机推荐

  1. 从来没有天才 靠自己创造未来——Leo鉴书(29)

    之前在网上跟朋友们聊起天才这个话题,我认来从来没什么所谓天才,有朋友认为有的,只是我们定义不同,要不你看看苏轼? 持天才论者持两个观点:有些人天生擅长干某些事儿,也许是基因作怪:有些人的能力是上帝或者 ...

  2. 看来是要改用Gecko的节奏,放弃Awesomium吧

    Gecko的对象模型很像微软自带的WebBrowser,Awesomium实在太难啃.

  3. android调用系统相机拍照并保存在本地

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  4. oracle db打one-off-patch 一例

    由于EBS form界面有一个报错,是一个小bug,以下打一个小patch修补一下. [以下的过程没有停库] 解压p8496830_111070_Linux-x86-64.zip cd 8496830 ...

  5. 0c-34-自动释放池

    #import <Foundation/Foundation.h> #import "Person.h" Person * creatPerson() { Person ...

  6. MySQL中内存分为全局内存和线程内存

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  7. spring security源码分析之core包

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring I ...

  8. 有关EL表达式的一些笔记

    JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库. <%--引入EL函数库 --%> <%@taglib uri="http://j ...

  9. cigarettes

    描述 Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them one by one keep ...

  10. Windows OpenVPN Client and tls-auth

    The official Windows OpenVPN client does not seem to work properly with the tls-auth option if a key ...