首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Ajax创建下拉控件

使用Ajax创建下拉控件
EN

Stack Overflow用户
提问于 2011-08-11 06:43:51
回答 1查看 373关注 0票数 1

到我写这篇文章的时候,我已经花了10多个染料,但还是不能解决我的问题:

我有一个数据库表位置,它有3个文件LocID,locName,locParent。

我想创建一个包含所有主要位置的DropDownList,例如国家。然后,当用户选择一个位置(例如,一个国家)时,该国家中的所有城市都会重新加载到一个动态创建的下拉列表中。

这个页面必须有无限的子类别。此外,解决方案必须在AjaxC#中。

EN

回答 1

Stack Overflow用户

发布于 2011-08-11 08:18:26

您需要将AjaxExtensions (随.net 3.5提供)添加到.net 2.0应用程序http://www.asp.net/ajax

这将要求页面上有一个ToolKitScriptManager

在页面上放置三个下拉列表。将它们命名为ddlCountry、ddlCity和ddlMainLocation。

可以选择将两个"sub“下拉列表放在设置为不可见的面板中。

在页面加载时,使用SqlDataBase阅读器从数据库中提取位置信息

使用阅读器,遍历记录并将项目添加到下拉列表中

例如。

代码语言:javascript
复制
    // Create a command object and set it to run a stored procedure that gets the countries from the database
SqlDataReader rdr = cmd.ExecuteQuery();
try
{
    ddlCountries.items.clear();
    While (rdr.read())
    {
        // Text to display, Common Data Item
        ddlCountries.items.add(new ListItem(rdr("CountryName").toString(),rdr("CountryCode").ToString());
    }
}
catch()
{
    // do something with your error
}

在ddlCountries下拉列表中添加以下属性:

  1. OnSelectedINdexChanged =“ddlCountries_SelectedIndexChanged"
  2. AutoPostback = "true"

(1)将对正在更改的索引执行命令(2)将在项更改时触发回发

然后,ddlCountries_SelectedIndexChanged事件方法将在数据库中查询属于所选国家/地区代码的相关城市(或将该值作为包含城市的表的外键)

现在测试代码,以确保回发导致使用数据填充城市列表。此时,它是一个具有回发功能的普通ASP.Net页面。要完成部分回发,在标记中,在下拉列表周围添加一个updatepanel。它看起来如下所示:

代码语言:javascript
复制
<asp:UpdatePanel runat="server" id="upnlDropdowns" UpdateMode="Conditional">
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="ddlCountries" EventName="OnSelectedIndexChanged" />
                        </Triggers>
<ContentTemplate>
<!--... Your Drop downs and any code to be Ajaxified .../-->
</ContentTemplate>
</asp:UpdatePanel>

再次测试并确保所有功能仍在运行。如果是这样,那么您可以添加第三个下拉列表。这一次,它将由cities下拉列表的selected index changed事件填充。

一旦一切正常,您可以通过添加一个updateprogress来扩展updatePanel以显示工作图像,从而添加令人惊叹的效果。

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7018820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档