Вызов функции с параметрами через привязку данных

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