Мы использовали подход, который довольно похож, но перемещает код в объектную модель, чтобы упростить реализацию на нескольких страницах.
Свойство только для чтения в объектном коде (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"