比方说表中
building foor
1 1
1 2
1 3
1 4
2 1
2 2
2 6
在一个下拉框显示
1
2
点击到1时,另一下拉框要出来 1
2
3
4
实现这样的功能同时,页面没有感觉在刷新的感觉
是不是得用ajax??具体怎么实现的
building foor
1 1
1 2
1 3
1 4
2 1
2 2
2 6
在一个下拉框显示
1
2
点击到1时,另一下拉框要出来 1
2
3
4
实现这样的功能同时,页面没有感觉在刷新的感觉
是不是得用ajax??具体怎么实现的
下面有个XXback那个选项要点上勾
测试数据create table tddlTest
(
building int,
foor int
)insert tddlTest
select 1,1
union
select 1,2
union
select 1,3
union
select 1,4
union
select 2,1
union
select 2,2
union
select 2,6
页面代码<body> <form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<br />
<asp:DropDownList ID="ddlFirst" runat="server" AutoPostBack="True"
onselectedindexchanged="ddlFirst_SelectedIndexChanged">
</asp:DropDownList>
DropDownList Test<br />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlSecond" runat="server">
</asp:DropDownList>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlFirst"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
后台代码using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;public partial class AjaxTest : System.Web.UI.Page
{ private const string conString = "Server=SZSOFT-SZZB\\SQLEXPRESS;database=office;uid=sa;pwd=abc_!123456;"; protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// 初始控件
DataTable dt = GetFirstData();
BindFirst(dt);
ddlFirst_SelectedIndexChanged(null, null);
}
} /// <summary>
/// 选择改变
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlFirst_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlFirst.SelectedItem != null)
{
DataTable dt = GetSecondData(ddlFirst.SelectedItem.Value);
BindSecond(dt);
}
} /// <summary>
/// 绑定第一个下拉控件
/// </summary>
/// <param name="dt"></param>
private void BindFirst(DataTable dt)
{
ddlFirst.DataTextField = "building";
ddlFirst.DataValueField = "building";
ddlFirst.DataSource = dt;
ddlFirst.DataBind();
} /// <summary>
/// 绑定第二个下拉控件
/// </summary>
/// <param name="dt"></param>
private void BindSecond(DataTable dt)
{
ddlSecond.DataTextField = "foor";
ddlSecond.DataValueField = "foor";
ddlSecond.DataSource = dt;
ddlSecond.DataBind();
} /// <summary>
/// 获取数据
/// </summary>
/// <returns></returns>
private DataTable GetFirstData()
{
SqlConnection con = new SqlConnection();
con.ConnectionString = conString;
con.Open();
string sqlSelect = "Select building From tddlTest group by building";
SqlDataAdapter adapter = new SqlDataAdapter(sqlSelect, con);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
} /// <summary>
/// 获取数据
/// </summary>
/// <returns></returns>
private DataTable GetSecondData(string parentId)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = conString;
con.Open();
string sqlSelect = string.Format("Select foor From tddlTest where building='{0}'",parentId);
SqlDataAdapter adapter = new SqlDataAdapter(sqlSelect, con);
DataTable dt = new DataTable();
adapter.Fill(dt);
return dt;
}}最后要却认下Web.config的<system.web>节点下有下面代码:<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>有什么作用
如果你不跟服务器打交道,可以用javascript在页面实现.