具有锚标记元素的DropDownList

时间:2013-08-19 20:23:36

标签: c# asp.net drop-down-menu

我是.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#中执行此操作?任何人都可以帮我提供一些示例或提示吗?

2 个答案:

答案 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;