0

クリックすると、親クラスのサブを呼び出す LinkBut​​ton を含むユーザー コントロールがあります。LinkBut​​ton をクリックするとサブは OK と呼ばれますが、そのサブ内で参照されているオブジェクトはすべて null オブジェクト参照エラーを引き起こしています。私は何を間違っていますか?

できるだけ短くするために、クラス内の関連するサブルーチンのみを示しています。

ユーザー コントロールのLinkClickサブは次のとおりです。

Public Class Dashboard
    Inherits System.Web.UI.UserControl

        ...(Other code here)...

        Private Sub LinkClick(sender As Object, e As CommandEventArgs)

            Dim action = e.CommandArgument
            Dim cls As New MainPage
            cls.Dashboard_Clicked(action)

        End Sub
End Class

LinkClick を介して呼び出されるサブを持つ親クラスを次に示します。

Imports System.IO

Public Class MainPage
    Inherits System.Web.UI.UserControl

    ...(Other code here)...

    Public Sub Dashboard_Clicked(action)

        mpe.Show()

    End Sub

End Class

親コントロールのマークアップを次に示します。これは、ユーザー コントロールのマークアップと、サブで参照しようとして失敗したオブジェクトのマークアップを示しています。

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="TSEnterHours.ascx.vb"
Inherits="App.MainPage" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register Src="Dashboard.ascx" TagName="Dashboard" TagPrefix="uc" %>

<uc:Dashboard SourceProcName="Dashboard.QueryName" runat="server">
    <DashboardParameters>
        <dashboardparameter name="aID" useenvironmentvalue="aID" />
    </DashboardParameters>
    <Items>
        <item type="hyperlink" Action="PTO_Clicked" label="YTD PTO Taken" field="TotalPTO" />
    </Items>
</uc:Dashboard>

<!-- Other code... -->

<asp:ModalPopupExtender ID="mpe" runat="server" TargetControlID="btnDummy" PopupControlID="PTOPanel"
BackgroundCssClass="ModalPopupBG" OkControlID="btnDummy" CancelControlID="btnDummy"
BehaviorID="mpeBehavior_PTO" />

ところで、「親」クラスは、それ自体がタブ コンテナー内で動作するユーザー コントロールです。それが違いを生むとは思いませんが、念のため言及する必要があると思いました。

4

1 に答える 1

0

WozzeC が述べているように、MainPage の新規作成は、その親ではなく、Dashboard インスタンスに関連付けられていることを意味します。

現時点では Web のことにはあまり関心がありませんが、MainPage にはダッシュボードが含まれていると思います。この場合、Dashboard に MainPage への参照を提供し、その参照を使用して Dashboard_Clicked() メソッドを呼び出すことをお勧めします。

または、ダッシュボードで MainPage がリッスンできるイベントを発生させますか?

于 2012-10-26T16:27:03.170 に答える