2009-08-21 1 views
1

У меня есть несколько DropDownLists в форме, которые динамически заполняются, когда они перемещаются по форме, вытягивая данные из БД. Данные все HTMLEncoded, поэтому мне нужно HTMLDecode данные для отображения текста.Помощь с методом для HTMLdecode DropDownLists Пожалуйста,

Я создал метод, чтобы сделать это и вызвать его «ondatabound» для каждого DDL

ondatabound="SortHTMLModel" 

НО, Что раздражает меня один и тот же метод, только изменяя название DDL на каждом из них. Мне нужен общий единственный метод, который может вызвать DDL. Вот это один для DDL называется ddlfuel

protected void SortHTML(object sender, EventArgs e) 
{ 
    foreach (ListItem item in ddlFuel.Items) 
    { 
     item.Text = Server.HtmlDecode(item.Text); 
    } 
} 

И один для DDL называется ddlModel

protected void SortHTMLModel(object sender, EventArgs e) 
{ 
    foreach (ListItem item in ddlModel.Items) 
    { 
     item.Text = Server.HtmlDecode(item.Text); 
    } 
} 

Вы видите мое затруднительное! Так раздражает, что я просто не могу понять синтаксис для одного метода.

ответ

1

IIRC, отправитель события является фактическим контролем, так что вы могли бы также сказать

protected void SortHTML(object sender, EventArgs e) 
{ 
    foreach (ListItem item in ((DropDownList)sender).Items) 
    { 
     item.Text = Server.HtmlDecode(item.Text); 
    } 
} 

и связать событие DataBound каждого DropDownList к SortHTML

+0

. Я дам эту попытку ... Я думал, что то же самое, и попробовал sender.Items, но это не сработало - я брошу его в качестве раскрывающегося списка и посмотрю, работает :) – leen3o

1

Почему вы не можете подклассифицировать элемент управления DropDownList, чтобы сделать это до того, как он отобразит элемент управления? Затем вместо использования запаса DropDownList вы используете свой выпадающий список подкласса, и функциональность происходит автоматически.

+0

Не могли бы вы предоставить какие-нибудь примеры? Я все еще являюсь промежуточным .NET. – leen3o