#asp.net #data-binding
#asp.net #привязка к данным
Вопрос:
Ладно, я на перепутье с чем-то. Взгляните на приведенный ниже код. У меня есть повторитель данных, и во всем повторителе я хочу вызвать GetNavUrl, снабдив его параметром, найденным в моих данных, с которыми я связываюсь.
NavigateUrl='<%# GetNavUrl(DataBinder.Eval(Container.DataItem,"ProductCode") %>'
Итак, например, я хочу, чтобы NavigateUrl равнялся результату GetNavUrl(123), есть идеи? спасибо!
Ответ №1:
Похоже, вы хотите выполнить привязку к данным дочерних объектов в вашем пользовательском интерфейсе? Честно говоря, в подобных ситуациях я считаю, что гораздо лучше избегать выполнения такой привязки в пользовательском интерфейсе (в основном для разделения проблем), а вместо этого делать это в коде позади.
myRepeater.ItemCreated = new ItemsCreatedEventHandler(whatever);
Затем в обработчике событий, созданном вашим элементом, найдите свой элемент управления и программно назначьте эти данные:
MyBindedObject dataItem = e.Item.DataItem as MyBindedObject;
HyperLink myLink = e.Item.FindControl("myControl") as HyperLink;
if(myLink != null)
myLink.NavigateUrl = GetNavUrl(dataItem);
Комментарии:
1. Спасибо Tejs, если мне нужно, я могу это сделать .. просто надеялся обеспечить быструю привязку данных к уже существующей странице