处理具有用于链接到其他网址的ASP.Net下拉列表的情况的最佳方法是什么
为了清晰起见而编辑
以下是基本情景:
与5个城市绑定的下拉列表
选择其中一个城市应该将我发送到基于城市的网址
现在我使用“OnSelectedIndexChanged”事件回发,然后处理事件并重定向到相应的页面。
然而,这会导致每个城市选择2次点击服务器,1次处理回发和重定向,然后是另一次以呈现实际页面。
使用自定义javascript构建网址是我的最佳选择吗?
答案 0 :(得分: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>
答案 1 :(得分:3)
将autopostback设置为false,并将其添加到onchange客户端事件(假设值包含整个URL,如果没有,请根据需要进行编辑):
window.navigate(this.options[this.selectedIndex].value);
答案 2 :(得分:0)
我只是想知道,为什么不通过AJAX获取城市信息(www.asp.net/learn上有几个视频教程)并向用户显示城市信息而不是创建其他更多页面跳转?
这只是一个想法,一个Web 2.0的想法:)
答案 3 :(得分:0)
如果页面很重并且您担心渲染时间,则可以使用ajax渲染查询结果。服务器点击处理后期数据,重定向应该是最小的,不值得做客户端。就个人而言,我更专注于第一次显示用户想要的数据。
答案 4 :(得分:0)
通常情况下,我会同意,但是每个页面都需要有一个具体的URL,并在点击URL时重新生成页面的其他部分。
感谢您的建议!