Solved

Repeater Help

Posted on 2009-05-08
7
311 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
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Problem to picture file 3 41
Word Template Mail merge with vb.net 4 40
Round a string to two digits 12 25
Adjust the position 3 13
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

746 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

12 Experts available now in Live!

Get 1:1 Help Now