让动态添加的标签看起来像标签

Getting dynamically added labels to look like tags

我想做的是与 SO 在主页上所做的类似:

所以,我所做的就是添加这段代码:

C# 代码隐藏:

    protected void LoadInterests()
    {

        //Fill Interests based on table values
        string strSQL2 = "SELECT UM.MatchValue, DD.DDLValue FROM tmpUsermatch UM ";
        strSQL2 = strSQL2 + "INNER JOIN (SELECT StoredValue, DDLValue FROM tmpDropdowns WHERE ddlName = 'ddlInterests') DD ";
        strSQL2 = strSQL2 + "ON UM.MatchValue = DD.StoredValue ";
        strSQL2 = strSQL2 + "WHERE MatchField = 'MatchInterests'  AND UserID = '" + lblUserID.Text + "'";
        using (var con = new SqlConnection(strCon1))
        using (var adapter2 = new SqlDataAdapter(strSQL2, con))
        {
            DataTable dt2 = new DataTable();
            adapter2.Fill(dt2);
            foreach (DataRow row in dt2.Rows)
            {
                Label dynamicLabel = new Label();
                dynamicLabel.ID = "lbl" + row["DDLValue"].ToString();
                dynamicLabel.Text = row["DDLValue"].ToString();
                dynamicLabel.CssClass = "lbl.interests";
                div1.Controls.Add(dynamicLabel);
            }
        }
    }

asp.net:

    <div>
        <asp:Panel ID="Panel1" runat="server" Height="100px" ScrollBars="Vertical" Style="float: left; margin-left: 1px; background-color:#f5f5f5" Width="807px" BorderColor="LightSteelBlue" BorderStyle="Solid" BorderWidth="1px">
            <div id="div1" runat="server" class="clear" style="width:820px; border-width:1px; margin-left:20px"></div>
        </asp:Panel>
    </div>

CSS:

lbl.interests
{
    background-color: #465c71;    
/*    background-color: white;    */
    border: 1px #4e667d solid;  
    color: white;
    display: block;
    line-height: 1.35em;
    padding: 4px 20px;
    text-decoration: none;
    white-space: nowrap;
}

最后的结果还是这样:

当我希望它看起来像这样时:

关于我哪里出错的任何想法?

换行

dynamicLabel.CssClass = "lbl.interests";  

dynamicLabel.CssClass = "lbl interests";      

并将 CSS 选择器更改为

.lbl.interests

记住 . 仅在 CSS 中用于选择 class 名称,它不会出现在 HTML 中,如果您只在 [= 中指定名称34=] 与 lbl 类似,您指的是 HTML 中的标签,根据 HTML,该标签无效,但也与代码匹配。

我的建议是先编写纯 HTML 和 CSS 并确认您的布局按预期工作,然后使用 C#/ASP.Net[= 生成 HTML 16=]

请参考以下 link 以获得有关 CSS 选择器的帮助
W3Schools - CSS Selectors