By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,084 Members | 1,207 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,084 IT Pros & Developers. It's quick & easy.

Link buttons don't fire ItemCommand in repeater control, is this a bug?

P: n/a
I cannot make the link buttons fire ItemCommand from
repeater control.

Here is the code:

<asp:repeater id=rptLetters runat="server">
<itemtemplate>
<asp:linkbutton id="lnkLetter"
runat="server" commandname="Filter"
CommandArgument='<%#
DataBinder.Eval(Container, "DataItem.Letter")%>'>
<%# DataBinder.Eval
(Container, "DataItem.Letter")%>
</asp:linkbutton>
</itemtemplate>
</asp:repeater>

In code-behind I've got:

this.rptLetters.ItemCommand += new
System.Web.UI.WebControls.RepeaterCommandEventHand ler
(this.OnLetterClicked);

and

protected void OnLetterClicked(object source,
System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
if (e.CommandName == "Filter")
{
letterFilter = (string)
e.CommandArgument;
PopulateGrid();
}
}

and it is does not fire the click event!
However, if I replace link button with regular buttons

<asp:repeater id=rptLetters runat="server">
<itemtemplate>
<asp:button id="lnkLetter" runat="server"
commandname="Filter"
CommandArgument='<%#
DataBinder.Eval(Container, "DataItem.Letter")%>'
Text='<%# DataBinder.Eval
(Container, "DataItem.Letter")%>' />
</itemtemplate>
</asp:repeater>

exactly the the same code works fine.

I am using 1.0.3705 framework.

Is this a bug?

Thanks,

-Stan

Nov 18 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Hi Stan,

Based on my research and experience, the following information is useful to
you. Please refer to it carefully.

DataList.ItemCommand Event
http://msdn.microsoft.com/library/de...us/cpref/html/
frlrfsystemwebuiwebcontrolsdatalistclassitemcomman dtopic.asp
"...
The ItemCommand event is raised when any button is clicked in the DataList
control and is commonly used when you have a button control with a custom
CommandName value.
...
The following example demonstrates how to specify and code a handler for
the ItemCommand event to select an item from the DataList control.
...
<ItemTemplate>

<asp:LinkButton id="SelectButton"
Text="Select"
CommandName="Select"
runat="server"/>

Item <%# DataBinder.Eval(Container.DataItem, "Item") %>

</ItemTemplate>
..."

If I have misunderstood your concern, please feel free to let me know.

Best regards,

Jacob Yang
Microsoft Online Partner Support
Get Secure! C www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.

Nov 18 '05 #2

P: n/a
Since this is in a data repeater the code fires the ItemCommand for the data
repeater instead of the LinkButton. This sounds strange but really works
out becuase sometime you can get away without sending any parameters, if the
data you need is in on DataRepeater Item.

To see if this is happening create an event handler for the Repeater control
and put a Messagebox.Show as the only line of code. The everytime you click
the link the message should popup. You can even sent a breakpoint on the
MessageBox.Show and view what data you can access from the datarepeater
using the e.Item object. I have used this numerous times, but the first
time it was very frustrating learning how to extract data from the
datarepeater. Feel free to send me any more questions you might have.

S. Shawn Mehaffie
PC************@hotmail.com


"Stan" <no****@yahoo.com> wrote in message
news:b4****************************@phx.gbl...
I cannot make the link buttons fire ItemCommand from
repeater control.

Here is the code:

<asp:repeater id=rptLetters runat="server">
<itemtemplate>
<asp:linkbutton id="lnkLetter"
runat="server" commandname="Filter"
CommandArgument='<%#
DataBinder.Eval(Container, "DataItem.Letter")%>'>
<%# DataBinder.Eval
(Container, "DataItem.Letter")%>
</asp:linkbutton>
</itemtemplate>
</asp:repeater>

In code-behind I've got:

this.rptLetters.ItemCommand += new
System.Web.UI.WebControls.RepeaterCommandEventHand ler
(this.OnLetterClicked);

and

protected void OnLetterClicked(object source,
System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
if (e.CommandName == "Filter")
{
letterFilter = (string)
e.CommandArgument;
PopulateGrid();
}
}

and it is does not fire the click event!
However, if I replace link button with regular buttons

<asp:repeater id=rptLetters runat="server">
<itemtemplate>
<asp:button id="lnkLetter" runat="server"
commandname="Filter"
CommandArgument='<%#
DataBinder.Eval(Container, "DataItem.Letter")%>'
Text='<%# DataBinder.Eval
(Container, "DataItem.Letter")%>' />
</itemtemplate>
</asp:repeater>

exactly the the same code works fine.

I am using 1.0.3705 framework.

Is this a bug?

Thanks,

-Stan

Nov 18 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.