CheckBoxList问题

时间:2011-02-24 01:15:15

标签: c# asp.net checkboxlist

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

3 个答案:

答案 0 :(得分: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";
    ...
    ...
}

答案 1 :(得分:1)

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

目标代码(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”

答案 2 :(得分:0)

您可以将css类应用于每个数据绑定复选框,并使用CSS

显示图标