asp.net button in ITemplate doesn't fire Repeater ItemCommand event

时间:2015-05-12 22:18:34

标签: asp.net button repeater itemcommand itemplate

i am a complete asp.net noob and the solution could be something very simple.

i have found, read and tried many answers to questions very similar to my question, but nothing works. i hope to find some help here.

this works perfectly with no problem:

print("The length of", repr(word), "is", word_length)

code behind:

    <asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand">
        <ItemTemplate>
            <asp:Button ID="Button1" runat="server" Text='<%# (Container.DataItem as Choice).description %>' CommandName="Choice" CommandArgument='<%# (Container.DataItem as Choice).id %>'/>
            <br />
        </ItemTemplate>
    </asp:Repeater>

but if i use ITemplate it doesn't work:

void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        List<Choice> choiceList = new List<Choice>();
        // ... code to fill the list ...
        Repeater1.DataSource = choiceList;
        Repeater1.DataBind();
    }
}
void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    int idx = int.Parse( e.CommandArgument.ToString() );
    // this function is called
}

code behind:

    <asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand">
    </asp:Repeater>

the buttons are displayed, but the event is not fired.

i have already tried saving a delegate in MyButtonTemplate and assigning the button click event - it does not work.

thank you!

0 个答案:

没有答案