2013-08-19 2 views
1

Я новичок в программировании .net, и, возможно, то, что я пытаюсь сделать, относительно просто, но до сих пор я не мог найти полезного примера.DropDownList с элементами элементов привязки

Я хочу создать элементы привязки в DropDownList. У меня есть следующий код в asp.net:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"> 
</asp:DropDownList> 

В коде позади (C#), я хочу, чтобы опрашивать базу данных (результат возвращает URL-адрес, описание и название) и заполнить DropDownList со следующим :

<a href="url">Title description</a> 

добавить результаты БД к 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-адрес, заголовок и описание, а также тег привязки.

Я хочу показать только: название описание. И в выбранном я хочу перенаправить пользователя на url, указанный в атрибуте href.

Возможно ли это сделать в asp.net и C#? Может ли кто-нибудь помочь мне с некоторым примером или советами?

ответ

0

Я думаю, вместо того, чтобы пытаться принести якоря тегов в вашем раскрывающемся списке, вы должны показать нормальный выберите элемент с URL, как 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; 
    }); 

}); 
0

A DropDownList не действительно разработан, чтобы сделать то, что вы просите об этом. Я бы посоветовал вам обновить свой код, чтобы привязать URL-адрес к атрибуту valueDropDownList, а затем описание/название как элемент 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. Таким образом, добавьте свою страницу Load add;

this.DropDownList1.SelectedIndexChanged += DropDownList1_SelectedIndexChanged; 

Затем создайте метод обработки этого;

public void DropDownList1_SelectedIndexChanged(object sender, EventArgs e){ 
    Response.Redirect(this.DropDownList1.SelectedValue); 
} 
Смежные вопросы