2

データベースからデータバインドされた C# のチェックボックス リストがあります。私がやりたいことは、チェックボックスリストの各項目のテキストの後に右側にアイコンを表示することです。ただし、各アイコンは異なる必要があります。ご協力いただきありがとうございます!

4

3 に答える 3

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" を設定するだけです。

于 2011-10-27T15:52:23.537 に答える
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";
    ...
    ...
}
于 2011-02-24T01:36:15.057 に答える