GridViewの列内に空白のリピーターがネストされており、GridViewのボタンを使用して、コードビハインドを介してオンデマンドでリピーターにデータを入力したいと考えています。ボタンのonCommandサブ内でリピーターを参照するのに問題があります。
関連するマークアップは次のとおりです。
<asp:GridView ID="Submission" runat="server" AllowPaging="true" AllowSorting="true" />
<Columns>
..........
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<asp:ImageButton ID="AdminEditSubmission" runat="server" ImageUrl="edit_15.png"
alt="" OnCommand="loadDetails" CommandArgument="X" />
</ItemTemplate>
</asp:TemplateField>
..........
<asp:TemplateField>
<ItemTemplate>
<asp:Repeater ID="RptSubmissionDetail" runat="server">
</asp:Repeater>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
この小さな例のために、リピーターのヘッダーを「Helloworld」で更新してみます。ただし、最後の行に到達すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という恐ろしいエラーが発生します。
Sub loadDetails(sender As Object, e As CommandEventArgs)
Dim rpt As Repeater = CType(Page.FindControl("RptsSubmissionDetail"), Repeater)
Dim tmpHdr As TemplateBuilder = New TemplateBuilder
tmpHdr.AppendLiteralString("Hello World")
rpt.HeaderTemplate = tmpHdr
End Sub
ImageButtonクリックサブからこのリピーターを参照する方法を教えてもらえますか?私はいくつか試しましたが、Page.FindControl( "RptsSubmissionDetail")は私の最新の試みにすぎません。