【问题标题】:CheckBoxList ProblemCheckBoxList 问题
【发布时间】:2011-02-24 01:15:14
【问题描述】:

我在 C# 中有一个从数据库绑定数据的复选框列表。我想做的是在每个复选框列表项的文本之后的右侧显示一个图标。但是,每个图标都需要不同。感谢您的帮助!

【问题讨论】:

  • 有什么帮助?我只能从您的问题中了解到您希望它如何显示。

标签: c# asp.net checkboxlist


【解决方案1】:

你可以这样做

<asp:CheckBoxList ID="CheckBoxList1" runat="server"
DataSourceID="dataSourceID"
DataTextField="dataTextField"
DataValueField="dataTextValue"
OnDataBound="CheckBoxList1_DataBound">
</asp:CheckBoxList>

protected void CheckBoxList1_DataBound(object sender, EventArgs e)
{
    var checkBox = sender as CheckBoxList;
    if(checkBox != null)
    {
        foreach (ListItem listItem in checkBox.Items)
        {
            listItem.Text = string.Format("{0}<img src='{1}' />", listItem.Text, GetImageFor(listItem.Text));
        }
    }

}

private string GetImageFor(string text)
{
    // return image url for check box based on text.

    if(text.Equals("Banana")) return "banana.gif";
    ...
    ...
}

【讨论】:

    【解决方案2】:

    我们使用了一种非常相似的方法,但将代码移至对象模型以简化在多个页面上的实现。

    目标代码中的只读属性(C#):

    public string chk_item_html { get { return item_name + string.Format("<img src='item{0}.png' />", item_id); } }
    

    然后在 asp:CheckBoxList 中,您只需设置 DataTextField = "chk_item_html"

    【讨论】:

      【解决方案3】:

      您可以为每个数据绑定复选框应用一个 css 类,并使用 CSS 显示一个图标

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多