我是.net编程的新手,也许我想做的事情相对简单但直到现在我找不到任何有用的例子。
我想在DropDownList中生成锚元素。我在asp.net中有以下代码:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
</asp:DropDownList>
在后面的代码(c#)中,我想询问数据库(结果返回一个url,描述和标题)并用以下内容填写DropDownList:
<a href="url">Title description</a>
我将db结果添加到DropDownList,如下所示:
while (reader){
list.Add("<a href='" + url + "'> " + title +" "+ description+"</a>");
}
this.DropDownList1.DataSource = list;
this.DropDownList1.DataBind();
但它显示了DropDownList的整行:
"<a href='" + url + "'> " + title +" "+ description+"</a>"
,其中解释了url,title和description,并且还出现了锚标记。
我只想显示:标题说明。在选中时,我想将用户重定向到href属性中指示的url。
是否可以在asp.net和c#中执行此操作?任何人都可以帮我提供一些示例或提示吗?
答案 0 :(得分:0)
我认为,您应该使用网址显示正常的选择元素,而不是尝试在您的下拉列表中添加锚标记,而是显示 OPTION 的value
。所以你的HTML标记看起来像这样
<SELECT id="SomeSelect">
<OPTION value="http://www.google.com">Google</OPTION>
<OPTION value="http://www.aol.com">AOL</OPTION>
<OPTION value="http://www.yahoo.com">Yahoo</OPTION>
</SELECT>
现在使用javascript来收听下拉菜单的change
事件,并获取所选项目的value
属性的值并使用该值进行导航。假设您已将jQuery库加载到页面中,下面的代码示例就是这样做的。
$(function(){
$("#SomeSelect").change(function(e){
var selectedUrl=$(this).val();
window.location.href=selectedUrl;
});
});
答案 1 :(得分:0)
DropDownList
并不是真的可以满足您的要求。我建议您更新代码,将网址绑定到value
的{{1}}属性,然后将描述/标题绑定为DropDownList
元素。
e.g。
text
然后向控件添加while (reader){
// read about the ListItem here http://msdn.microsoft.com/en-us/library/7f7h2h8h.aspx
list.add(new ListItem(title + " " + description, url));
}
事件处理程序。所以在你的Page Load add;
SelectedIndexChanged
然后创建一个方法来处理这个问题;
this.DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;