Kann nicht den inneren Inhalt von '' erhalten, da der Inhalt nicht wörtlich ist

Ich versuche, den Inhalt eines Repeaters zu durchlaufen, der eine HTML-Tabelle enthält, und den Inhalt jeder Zelle zu verwenden. Dies funktioniert gut für Standard-HTML-Komponenten, aber es geht in die Luft, wenn ich versuche, ein Steuerelement zu verwenden. Der folgende Code gibt den Wert der ersten Zelle "Item # 1" aus, löst jedoch eine HttpException aus, wenn versucht wird, auf .InnerText der zweiten Zelle zuzugreifen. Der Fehler ist wie folgt:

Cannot get inner content of  because the contents are not literal.

Ich habe versucht, RenderControl über diese an anderer Stelle gefundene Lösung zu verwenden, was aus zwei Gründen fehlgeschlagen ist. 1) Es wurde der gesamte HTML-Code der ersten Zelle gerendert und 2) Es wurde immer noch gesprengt, als versucht wurde, mit der folgenden Meldung auf die zweite Zelle zuzugreifen:

'LinkButton1' of type 'LinkButton' must be placed inside 
 a form tag with runat=server

Gibt es eine einfache Möglichkeit, den LinkButton-Text abzurufen, nach dem ich gesucht habe? Repeater-Code und C # finden Sie unten.

Der Repeater-Code:

<asp:Repeater ID="Rep1" runat="server">
<HeaderTemplate>
    <table id="Table1" class="data">
</HeaderTemplate>
<ItemTemplate>
    <tr id="Row" runat="server">
        <td>Item #1</td>
        <td><asp:LinkButton ID="LinkButton1" OnClick="DoSomething" 
             Text="Item #2" runat="server" /></td>
    </tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>

The C #:

foreach (RepeaterItem item in Rep1.Items)
{
    HtmlTableRow row = item.Controls[0].FindControl("Row") as HtmlTableRow;

    foreach (HtmlTableCell cell in row.Cells)
    {
        if (cell.InnerText != string.Empty) 
        {
            Console.WriteLine(cell.InnerText);
        }
    }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage