ITemplate - вызов метода ASPX
Я создал шаблон класса для повторителя. Это работает, за исключением случая, когда созданная кнопка внутри класса шаблона не запускает метод на странице ASPX.
Вот класс ItemTemplate:
public class TimetableStationTemplate : ITemplate
{
public TimetableStationEditor Editor { get; set; }
public TimetableStationTemplate(TimetableStationEditor editor)
{
Editor = editor;
}
public void InstantiateIn(Control container)
{
RepeaterItem rptItem = (RepeaterItem)container;
Literal litLi1 = new Literal { Text = "<li>" };
Label lblStationName = new Label();
lblStationName.DataBinding += LblStationName_DataBinding;
Literal litBr1 = new Literal { Text = "<br/>" };
Label lblTimes = new Label();
lblTimes.DataBinding += LblTimes_DataBinding;
Literal litBr2 = new Literal { Text = "<br/>" };
ImageButton btnEdit = new ImageButton { ImageUrl = "~/Images/btnedit.png", CommandName = "EDIT" };
btnEdit.DataBinding += Btn_DataBinding;
ImageButton btnDelete = new ImageButton { ImageUrl = "~/Images/btndelete.png", CommandName = "DELETE" };
btnDelete.DataBinding += Btn_DataBinding;
Literal litLi2 = new Literal { Text = "</li>" };
container.Controls.Add(litLi1);
container.Controls.Add(lblStationName);
container.Controls.Add(litBr1);
container.Controls.Add(lblTimes);
container.Controls.Add(litBr2);
container.Controls.Add(btnEdit);
container.Controls.Add(btnDelete);
container.Controls.Add(litLi2);
}
private void Btn_DataBinding(object sender, System.EventArgs e)
{
ImageButton btn = (ImageButton)sender;
RepeaterItem ri = (RepeaterItem)btn.NamingContainer;
btn.CommandArgument = DataBinder.Eval(ri.DataItem, "Guid").ToString();
btn.Command += Editor.Btn_Command;
}
private void LblTimes_DataBinding(object sender, System.EventArgs e)
{
Label lbl = (Label)sender;
RepeaterItem ri = (RepeaterItem)lbl.NamingContainer;
lbl.Text = Editor.GetArrivalTime(DataBinder.Eval(ri.DataItem, "Guid").ToString()) + " - " + Editor.GetDepartureTime(DataBinder.Eval(ri.DataItem, "Guid").ToString());
}
private void LblStationName_DataBinding(object sender, System.EventArgs e)
{
Label lbl = (Label)sender;
RepeaterItem ri = (RepeaterItem)lbl.NamingContainer;
lbl.Text = Editor.GetStationName(DataBinder.Eval(ri.DataItem, "PlatformGuid").ToString());
}
}
И вот фрагмент, где я привязываю шаблон к повторителю:
rptTimetableStations.DataSource = TimetableStation.List("TimetableGuid = @TimetableGuid", "@TimetableGuid", tt.Guid).OrderedBy("TimetablePosition");
rptTimetableStations.ItemTemplate = new TimetableStationTemplate(this);
rptTimetableStations.DataBind();
Теперь моя проблема в том, что Editor.Btn_Command не запускается.
заранее спасибо