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 не запускается.

заранее спасибо

0 ответов

Другие вопросы по тегам