3

处理您有一个用于链接到另一个 URL 的 ASP.Net 下拉列表的情况的最佳方法是什么

为清楚起见进行了编辑

这是基本场景:

绑定了 5 个城市的下拉列表

选择其中一个城市应将我发送到基于城市的 URL

现在我正在使用“OnSelectedIndexChanged”事件发回,然后处理该事件并重定向到相应的页面。

但是,这会导致每个选定城市对服务器进行 2 次点击,1 次用于处理回发和重定向,然后另一次用于呈现实际页面。

使用自定义 javascript 构建 URL 是我的最佳选择吗?

4

5 回答 5

17

您可以为选择更改事件添加客户端处理程序,然后根据所选值重定向到所需页面:

<asp:DropDownList ID="ddl" runat="server"
  onchange="document.location.href = this.value;" >
    <asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
    <asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
    <asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
    <asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>
于 2008-12-30T19:47:27.017 回答
3

将 autopostback 设置为 false,并将其添加到 onchange 客户端事件(假设该值具有整个 URL,如果没有,则根据需要进行编辑):

window.navigate(this.options[this.selectedIndex].value);
于 2008-12-30T19:44:47.990 回答
0

我只是想知道,为什么不通过 AJAX 获取城市信息( www.asp.net/learn上有几个视频教程)并向用户显示城市信息而不是创建其他更多页面跳转?

这只是一个想法,一个 Web 2.0 的想法 :)

于 2008-12-30T20:16:08.953 回答
0

如果页面很重并且您担心呈现时间,则可以使用 ajax 来呈现查询结果。服务器命中来处理发布数据和重定向应该是最小的,不值得在客户端这样做。就个人而言,我会更专注于第一次显示用户想要的数据。

于 2008-12-30T20:23:51.497 回答
0

通常,我会同意,但是每个页面都需要有一个具体的 URL + 在点击 URL 时重新生成页面的其他部分。

不过感谢您的建议!

于 2008-12-30T20:45:15.993 回答