Solved

Repeater Help

Posted on 2009-05-08
7
314 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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
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 …
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

813 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