[ASP .NET] linkbutton in repeater werkt niet

Pagina: 1
Acties:

  • Mottebelke
  • Registratie: Juni 2001
  • Laatst online: 11:19
Ik heb dus een repeater gemaakt met daarin een linkbutton. In ieder item van de repeater moet dus een repeater verschijnen:

code:
1
2
3
4
5
6
7
8
    <asp:Repeater id="msg_repeater" runat="server">
        <ItemTemplate>
            <tr>
                <td class="body"><a href="log_edit.aspx?msgid=<%# DataBinder.Eval(Container.DataItem, "id") %>"><%# DataBinder.Eval(Container.DataItem, "title") %></a></td>
                <td class="body"><asp:LinkButton id="log_delete_button" runat="server" CommandName="log_delete_button" CommandArgument="<%# DataBinder.Eval(Container.DataItem, "id") %>" Text="Verwijder"/></td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>

Maar het probleem is dat ik nu een error krijg:
The server tag is not well formed.
Daarbij wordt er verwezen naar de linkbutton regel. Als ik dan de runat="server" tag weghaal krijg ik geen error, maar wordt de linkbutton niet aangemaakt.

Weet iemand hiervoor een oplossing?

  • SuperRembo
  • Registratie: Juni 2000
  • Laatst online: 20-08-2025
Het gaat fout door de quotes. Vervang
ASP.NET:
1
CommandArgument="<%# DataBinder.Eval(Container.DataItem, "id") %>"

door
ASP.NET:
1
CommandArgument='<%# DataBinder.Eval(Container.DataItem, "id") %>'

| Toen / Nu


  • Mottebelke
  • Registratie: Juni 2001
  • Laatst online: 11:19
Dat was het inderdaad. Thx!!

Verwijderd

Vervang ook je dubbele quotes van je href met enkele
C#:
1
2
3
4
5
6
7
8
    <asp:Repeater id="msg_repeater" runat="server">
        <ItemTemplate>
            <tr>
                <td class="body"><a href='log_edit.aspx?msgid=<%# DataBinder.Eval(Container.DataItem, "id") %>'><%# DataBinder.Eval(Container.DataItem, "title") %></a></td>
                <td class="body"><asp:LinkButton id="log_delete_button" runat="server" CommandName="log_delete_button" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "id") %>' Text="Verwijder"/></td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>

Als je dus meerdere argumenten binnen een tag wil gebruiken moet je dus ook enkele en dubbele combineren. HTML herkent gelukkig ook single ' dus dat werkt prima.

Bij je orginele code leest HTML de " van de container de eind quote van de href en geeft daardoor een error.

code:
1
2
<a href="log_edit.aspx?msgid=<%# DataBinder.Eval(Container.DataItem, "id") %>">
        ^ Begin Quote                                                ^ Eind Quote