处理具有用于链接到其他网址的ASP.Net下拉列表的情况的最佳方法是什么

为了清晰起见而编辑

以下是基本情景:

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

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

现在我正在使用“OnSelectedIndexChanged”回发帖子。然后事件处理事件并重定向到适当的页面。

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

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

有帮助吗?

解决方案

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

<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>

其他提示

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

window.navigate(this.options[this.selectedIndex].value);

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

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

如果页面很重并且您担心渲染时间,则可以使用ajax渲染查询结果。服务器点击处理后期数据,重定向应该是最小的,不值得做客户端。就个人而言,我更专注于第一次显示用户想要的数据。

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

感谢您的建议!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top