OnItemDataBound イベントを使用して、リピーターで無効になっているボタンをアクティブにしようとしています。簡単に言えば、イベントがトリガーされた場合、リピーターにアイテムがあることがわかっているので、ボタンを有効にしたいと考えています。私が立ち往生しているのは、関数内のボタンをキャストして有効にできるようにすることです。リピータ コードの関連部分は次のとおりです。
<asp:Repeater ID="RptEnterHours" runat="server" DataSourceID="SQL_EmployeeGetTimesheet" ClientIDMode="Predictable" OnItemDataBound="RptEnterHours_Bound">
'.....Irrelevant code.....
<FooterTemplate>
<asp:Button Enabled="false" ID="SubmitTimesheets" Text="Submit All Timesheets" OnClick="processTimesheetEntry" runat="server" OnClientClick="checkValues();" />
</FooterTemplate>
</asp:Repeater>
これは私のコードビハインドです:
Sub RptEnterHours_Bound(Sender As Object, e As RepeaterItemEventArgs)
'Exposes the Submit All Timesheets button if timesheets are available.
If (e.Item.ItemType = ListItemType.Item) Or _
(e.Item.ItemType = ListItemType.AlternatingItem) Then
Dim sButton As Button = TryCast(Me.FindControl("SubmitTimesheets"), Button)
sButton.Enabled = True
End If
End Sub
これと他のすべての試みにより、恐ろしい「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されました。私が間違っていることと、コードビハインドがボタンを見つけられない理由を誰かに教えてもらえますか?