Динамическое добавление изображений с помощью UpdatePanel
Я пытаюсь динамически создавать изображения в таблице, но кажется, что UpdatePanel не обновляется. У меня есть следующий код на моей странице.aspx.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewTile.aspx.cs" Inherits="ViewTile" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body runat="server">
<form id="form1" runat="server">
<div>
<asp:Image ID="tileImg" runat="server"/>
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<table>
<asp:updatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:PlaceHolder runat="server" ID="placeholder1"/>
</ContentTemplate>
</asp:updatePanel>
</table>
</div>
</form>
</body>
</html>
А затем эта страница aspx.cs.
TableRow imageRow = new TableRow();
for (int rowItr = 0; rowItr < 3; rowItr++)
{
for (int colItr = 0; colItr < 4; colItr++)
{
System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
image.ImageUrl = "~/ShowTile.ashx?SheetId=" + SheetGUID + "&Scale=" + 3
+ "&XCoord=" + colItr + "&YCoord=" + rowItr;
placeholder1.Controls.Add(image);
TableCell imageCell = new TableCell();
imageCell.Controls.Add(image);
imageRow.Cells.Add(imageCell);
}
placeholder1.Controls.Add(imageRow);
imageRow.Cells.Clear();
}
Я точно знаю, что изображение вызывается правильно, поскольку я вывел его вручную с помощью тега изображения на клиенте. Любая помощь будет отличной! Спасибо
2 ответа
Решение
Сначала нужно добавить таблицу, добавить в нее строки и, наконец, добавить таблицу в placeholder1.Controls
Table tbl= new Table();
for (int rowItr = 0; rowItr < 3; rowItr++)
{
TableRow imageRow = new TableRow();
for (int colItr = 0; colItr < 4; colItr++)
{
System.Web.UI.WebControls.Image image = new System.Web.UI.WebControls.Image();
image.ImageUrl = "~/ShowTile.ashx?SheetId=" + SheetGUID + "&Scale=" + 3
+ "&XCoord=" + colItr + "&YCoord=" + rowItr;
TableCell imageCell = new TableCell();
imageRow.Cells.Add(imageCell);
}
tbl.Rows.Add(imageRow);
}
placeholder1.Controls.Add(tbl);
Вы можете сделать это с помощью JavaScript и веб-службы.
Создайте функцию, которая будет вызывать веб-службу, получить URL-адрес изображения и добавить его в панель обновления панели.