Я склоняюсь больше к явному. Простите за незначительные ошибки в коде, я не могу это проверить.
Если в разметке вы заменяете эти уловки на литералы, то в коде:
Если у вас есть коллекция MyClass.
В событии инициализации вашей страницы
this.rptLessons.OnItemDataBound += rptLessons_DataBound...
В нагрузке или где бы вы ни выбрали
this.rptLessons.DataSource = CollectionOfMyClass;
this.rptLessons.DataBind();
Тогда в этом элементе DataBoundEvent
MyClass myClass = (MyClass)ri.DataItem;
Literal litFullname = FindControl(ri, "litFullName");
litFullName.Text = myClass.Fullname;
Таким образом, вы можете обслуживать нули и т. Д. Более контролируемым образом, чем при использовании eval.