1

我是.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# 中执行此操作?谁能帮我举一些例子或提示?

4

2 回答 2

0

我认为,与其尝试在下拉列表中添加锚标记,不如显示带有 url 作为 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;
  });

});
于 2013-08-19T20:28:40.873 回答
0

ADropDownList的设计目的并不是为了满足您的要求。我建议您更新代码以将 URL 绑定到的value属性,DropDownList然后将描述/标题作为text元素。

例如

while (reader){
    // read about the ListItem here http://msdn.microsoft.com/en-us/library/7f7h2h8h.aspx
    list.add(new ListItem(title + " " + description, url));
}

然后将SelectedIndexChanged事件处理程序添加到控件。所以在你的页面加载中添加;

this.DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged;

然后创建一个方法来处理这个;

public void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){
    Response.Redirect(this.DropDownList1.SelectedValue);
}
于 2013-08-19T20:31:07.777 回答