Tôi đang cố gắng lặp qua nội dung của Bộ lặp có chứa bảng html và sử dụng nội dung của mỗi ô. Điều này làm việc tốt cho các thành phần HTML tiêu chuẩn, nhưng thổi lên khi tôi cố gắng sử dụng một điều khiển. Mã dưới đây sẽ in giá trị của ô đầu tiên, "Item # 1", nhưng sẽ ném một HttpException khi cố gắng truy cập .InnerText của ô thứ hai. Lỗi này như sau:Không thể lấy nội dung bên trong của '' vì nội dung không phải là chữ số
Cannot get inner content of because the contents are not literal.
Tôi đã cố gắng sử dụng RenderControl qua giải pháp này được tìm thấy ở nơi khác, không thành công vì hai lý do; 1) nó trả lại toàn bộ mã HTML của ô đầu tiên và 2) nó vẫn thổi lên khi cố gắng truy cập vào các tế bào thứ hai với thông báo sau:
'LinkButton1' of type 'LinkButton' must be placed inside
a form tag with runat=server
Có một cách dễ dàng để có được những văn bản LinkButton Tôi sau? Mã lặp lại và C# có thể được tìm thấy bên dưới.
Mã lặp lại:
<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);
}
}
}
Bạn có thể sửa lỗi này không? Tôi đang cần một câu trả lời tuyệt vọng, vì tôi nhận được các lỗi giống như bạn. Tôi thậm chí đã thử sử dụng các điều khiển System.Windows.Forms để giải quyết vấn đề này, nhưng không có niềm vui. – Fandango68