Solved

Repeater Help

Posted on 2009-05-08
7
312 Views
Last Modified: 2013-11-08
I have created a repeater that displays academic information (degrees, college, etc.).  I want the user to be able to edit the entry (entry = degree).  Right now I'm attempting to use a LinkButton and pass the EntryID as the CommandArguement.  I thought this would work but I'm getting a strange error(Unable to cast object of type 'System.EventArgs' to type 'System.Web.UI.WebControls.CommandEventArgs').

My questions:

1. Is the route I'm taking possible, if so what am I doing wrong?

2. What are your suggestions for using a repeater and passing a parameter?

Thanks.
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="odsDegreeDetails">

                <HeaderTemplate>

                    <table width="80%">

                </HeaderTemplate>

                <ItemTemplate>

                    <tr>

                        <td style="width: 60%; vertical-align: top">

                            <b>Institution: </b>

                            <%#Container.DataItem("NAME")%>

                        </td>

                        <td style="width: 40%; vertical-align: top">

                            <b>Degree: </b>

                            <%#Container.DataItem("DESCRIPTION")%>

                        </td>

                    </tr>

                    <tr>

                        <td style="width: 60%; vertical-align: top">

                            <b>Major: </b>

                            <%#Container.DataItem("MAJOR")%>

                        </td>

                        <td style="width: 40%; vertical-align: top">

                            <b>Grad. Date: </b>

                            <%#Container.DataItem("END_DATE")%>

                        </td>

                    </tr>

                    <tr>

                        <td colspan="2">

                            <b>Honors:</b>

                            <%#Container.DataItem("HONOR")%>

                        </td>

                    </tr>

                    <tr>

                        <td colspan="2">

                            <asp:LinkButton ID="lbEdit" runat="server" CommandArgument='<%#Container.DataItem("DegreesId")%>'  ValidationGroup="Edit" OnClick="lbEdit_Click">Edit</asp:LinkButton>

                            | <a href="delete_degree.aspx?DegreesId=<%#Container.DataItem("DegreesId")%>" onclick="confirmDelete()">

                                Delete</a>

                        </td>

                    </tr>

                </ItemTemplate>

                <SeparatorTemplate>

                    <tr>

                        <td colspan="2">

                            &nbsp;

                        </td>

                    </tr>

                </SeparatorTemplate>

                <FooterTemplate>

                    </table>

                </FooterTemplate>

            </asp:Repeater>

Open in new window

0
Comment
Question by:mmeisel
  • 3
  • 2
  • 2
7 Comments
 
LVL 20

Expert Comment

by:informaniac
ID: 24335837
Why don't u use the gridview. Editing a gridview is much easier I suppose
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24335860
0
 
LVL 1

Author Comment

by:mmeisel
ID: 24335862
That's true but I want one record to span multiple rows.  For example (-> indicates the following column)

College 1 -> Degree 1
Major 2 -> Grad Date 1
Edit | Delete

College 2 -> Degree 2
Major 2 -> Grad Date 2
Edit | Delete

etc.

If there is a way to do this with a gridview then fantastic but I thought gridviews could only display one row for each record.
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 20

Expert Comment

by:informaniac
ID: 24335934
Try placing gridview inside the repeater and bind the gridviews....

Then it might be possible to edit the gridview inside the repeater....
0
 
LVL 1

Author Comment

by:mmeisel
ID: 24335957
CodeCruisier:

I'm not necessarily trying to edit the information in the repeater.  What I'm trying to accomplish is to pass the CommandArguement to the event handler, in this case lbEdit_Click.  With that CommandArguement I'm going to query the database and populate another form on the page.  My problem is that I cannot read the CommandArguement in the event handler (lbEdit_Click).
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24336010
That is what i meant. What you can do is bind the Tag property of the Edit button to the DegreeID instead of using CommandArguments because repeater does  not use command arguments. Then on serverside, you can access the Tag property of the button easily.
0
 
LVL 1

Accepted Solution

by:
mmeisel earned 0 total points
ID: 24336904
I'm not sure what you mean by the Tag proerty but I got it working.

I placed a LinkButton in my Repeater with a command arguement that is binded to the ID.  Then I created a OnItemCommand event handler for the Repeater.  When I did this I got the ID of the record.

<asp:LinkButton ID="lbEdit" runat="server" CommandArgument='<%#Container.DataItem("Id")%>' CommandName="Edit" ValidationGroup="Edit">Edit</asp:LinkButton>

Reference: http://www.ajaxtutorials.com/ajax-tutorials/using-repeater-to-edit-in-line-with-ajax-in-vb-net/
Protected Sub Repeater1_ItemCommand(ByVal sender As Object, ByVal e As RepeaterCommandEventArgs) Handles Repeater1.ItemCommand
 

        Label1.Text = (e.CommandArgument.ToString)
 

    End Sub

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.
Many of my clients call in with monstrous Gmail overloading issues with Outlook. A quick tip is to turn off the All Mail and Important folders from synching. Here is a quick video I made to show you how to turn off these and other folders in Gmail s…

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now