リモート サービスから文字情報を取得し、その情報を UpdatePanel 内のテーブルに表示するページがあります。テーブル行、テーブルセル、およびテキストをテーブルに追加するだけであれば、テーブルは完全に更新されます。ただし、img タグまたは Image クラスを使用して画像を追加しようとすると、テーブルが一度更新された後、それ以上の更新が拒否されます。
いくつかの Google 検索を実行し、各検索で最初の数ページ分の結果を読み、stackoverflow を確認しましたが、特定の問題に一致する結果はありません。画像はなくても構いませんが、各ゲーム キャラクターに現在影響しているステータス効果を視覚的に表現するために画像を使用したかったので、画像を追加したいと考えています。コードは以下です。
<asp:ScriptManager ID="scMain" runat="server" />
<asp:Timer ID="tmrRefresh" runat="server" Interval="5000" Enabled="true" />
<asp:UpdatePanel ID="udPanel" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tmrRefresh" EventName="Tick" />
</Triggers>
<ContentTemplate>
<asp:Table id="tblCharacters" runat="server">
<asp:TableHeaderRow>
<asp:TableHeaderCell>Focus</asp:TableHeaderCell>
<asp:TableHeaderCell>Character</asp:TableHeaderCell>
<asp:TableHeaderCell>Location</asp:TableHeaderCell>
<asp:TableHeaderCell>Ping</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table><br />
<asp:Label ID="lblNote" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
コードビハインド:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Master.IsLoggedIn Then
Response.Redirect("login.aspx")
Else
FillCharacterTable()
End If
End Sub
Private Sub FillCharacterTable()
Dim Foci() As Byte = {0, 4, 10, 19, 24}
Dim Names() As String = {"Unknown", "Gatekeeper", "Dreamseer", "Soulmaster", "Fatesender"}
Dim HaloColors() As Byte = {0, 4, 15, 7, 18}
Dim c As New CharacterInfoClient ' Remote service
Dim Characters() As String = c.GetCharacterInformation
For Each s As String In Characters
Dim args() As String = s.Split("|")
Dim tr As New TableRow
' add focus elemen icon
Dim focus As Byte = Foci(args(2))
' option 1 - causes timer to stop updating
tr.Cells.Add(New TableCell With {.Text = String.Format("<img src=""http://mydomainremoved.net/images/game/image.gif?s=7&v=3&c1={0}&c2={0}&st=50"">", focus))})
' Option 2, same thing
Dim tc As New TableCell
tc.Controls.Add(New Image With {.ImageUrl = String.Format("http://mydomainremoved.net/images/game/image.gif?s=7&v=3&c1={0}&c2={0}&st=50", focus)})
tr.Cells.Add(tc)
tr.Cells.Add(New TableCell With {.Text = "<a href=""character.aspx?id=" & args(1) & """>" & args(0) & "</a>"})
tr.Cells.Add(New TableCell With {.Text = args(4)})
tr.Cells.Add(New TableCell With {.Text = args(7)})
tblCharacters.Rows.Add(tr)
Next
lblNote.Text = Characters.Length & " characters -- " & Now.ToString
End Sub