asp.net - route - select asp-for asp-items
Agregar programáticamente clase css a ListItem (4)
Aún puede agregar atributos personalizados:
// assuming li is your WebControl or HtmlControl:
li.Attributes.Add("class", "1");
Necesito producir con asp.net controles esta estructura, pero ListItem no permite agregar propiedades y clases.
¿Cuál es la mejor manera de hacerlo?
<ul>
<li class="1">SomeText</li>
<li class="2">SomeText2</li>
</ul>
Puede transferir el atributo de clase:
<asp:BulletedList ID="BulletedList1" runat="server">
<asp:ListItem class="1">SomeText</asp:ListItem>
<asp:ListItem class="2">SomeText2</asp:ListItem>
</asp:BulletedList>
. . .
protected void Page_Load(object sender, EventArgs e)
{
ListItem listItem = new ListItem("Test 3");
listItem.Attributes.Add("class", "3");
BulletedList1.Items.Add(listItem);
}
Esto funciona bien para mí, pero usando dropdownlist y VB
Dim ListItem As ListItem = New ListItem("All folders", 0)
ListItem.Attributes.Add("style", "color:red;")
DropDownListFolders.Items.Add(ListItem)
Desplegable en la vista de lista - si desea dar una ventana emergente al seleccionar el elemento cuando se corrige el tamaño de texto desplegable:
protected void lstViewVehicle_ItemCreated(object sender, ListViewItemEventArgs e)
{
try
{
if (e.Item.ItemType == ListViewItemType.InsertItem)
{
DropDownList ddl = (DropDownList)e.Item.FindControl("ddlDescription");
if (ddl != null)
{
string description = exp_Type_Vehicle;
clsBER objclsBER = new clsBER();
DataSet ds = objclsBER.FillDropdown(description);
foreach (DataRow dr in ds.Tables[0].Rows)
{
ListItem lstitem = new ListItem(dr["expense_description"].ToString(), dr["eid"].ToString());
lstitem.Attributes.Add("title", dr["expense_description"].ToString());
//lstitem.Attributes.Add("style", "color:blue");
ddl.Items.Add(lstitem);
}
ddl.DataBind();
}
}
}
catch (Exception ex)
{
(new csComman()).dealWithEx(ex, Session);
Response.Redirect("ErrorPage/ErrorPage.aspx", false);
}
}