Как добавить класс css при использовании нового ListItem для привязки данных? - PullRequest
0 голосов
/ 16 ноября 2018

Я добавляю некоторые значения в выпадающий список, используя цикл:

for (Int32 i = 1; i <= MaxOrderQuantity; i++)
{
    myDropDownList.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)));
}

Я хочу добавить атрибут CSS в новый ListItem одновременно. Я видел, что я могу использовать

.Attributes.Add("class","foo")

Однако единственный способ найти это - разбить мою единственную строку кода на 3 отдельные строки кода следующим образом:

ListItem newListItem = new ListItem("my value", "my value");
newListItem.Attributes.Add("class", "blah");
myDropDownList.Items.Add(newListItem);

Intellisense позволил мне написать следующий код, но он выдает ошибку и говорит: «Наилучший перегруженный метод соответствует для« System.Web.UI.WebControls.ListItemCollection.Add (string) »с некоторыми недопустимыми аргументами.

myDropDownList.Items.Add(new ListItem(Convert.ToString(i), Convert.ToString(i)).Attributes.Add("class","blah"));

Как можно добавить новый ListItem с атрибутом 'class' в одну строку кода?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Я рекомендую добавить CSS в myDropdownList и затем позволить CSS делать выбор элементов в списке. Вот как CSS предназначен для работы.

// this Markup    
<asp:DropDownList ID="myDropdownList " runat="server">
</asp:DropDownList>

// can have a CSS class added on the server like this
this.myDropdownList.Css = "blah";
myDropdownList.Datasource = data;
myDropdownList.DataBind();


// which will render on the page like this
<select class="blah" id="myDropdownList">
     <option>Foobar 1</option> 
     <option>Foobar 2</option> 
     <option>Foobar 3</option> 
</select>


// which you can apply CSS styling to like this
select.blah option {
  flont-size:large;
  color: #aaa;
  font-type:italics;
}
0 голосов
/ 16 ноября 2018

Вы не можете сделать это, потому что Attributes.Add () не возвращает объект ListItem.

См. Документацию: https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.attributecollection.add?view=netframework-4.7.2#System_Web_UI_AttributeCollection_Add_System_String_System_String_

Вы можете использовать старый способ

ListItem newListItem = new ListItem("my value", "my value");
newListItem.Attributes.Add("class", "blah");
myDropDownList.Items.Add(newListItem);

или переписать вашу версию Add ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...