我需要使用asp.net控件来生成这个结构,但是ListItem不允许添加属性和类。
最佳方法是什么?
<ul>
<li class="1">SomeText</li>
<li class="2">SomeText2</li>
</ul>
您可以通过class属性进行传递:
<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);
}
您仍然可以添加自定义属性:
// assuming li is your WebControl or HtmlControl:
li.Attributes.Add("class", "1");
在ListView中使用下拉菜单 - 如果您想在选择项目时弹出窗口,而下拉菜单的文本大小是固定的:
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);
}
}
这对我来说很好用,但是使用下拉列表和VB
Dim ListItem As ListItem = New ListItem("All folders", 0)
ListItem.Attributes.Add("style", "color:red;")
DropDownListFolders.Items.Add(ListItem)