我试图遍历包含html表的Repeater的内容,并使用每个单元格的内容.这适用于标准的
HTML组件,但是当我尝试使用控件时会爆炸.下面的代码将打印第一个单元格“#1”的值,但在尝试访问第二个单元格的.InnerText时会抛出一个HttpException异常.错误如下:
Cannot get inner content of because the contents are not literal.
我试图使用RenderControl通过这个解决方案找到其他地方,失败了两个原因; 1)它渲染了第一个单元格的整个HTML,2)当尝试使用以下消息访问第二个单元格时,它仍然会被炸毁:
'LinkButton1' of type 'LinkButton' must be placed inside a form tag with runat=server
有没有一个简单的方法来获得我之后的LinkButton文本?中继器代码和C#可以在下面找到.
中继器代码:
<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>
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); } } }