簡體   English   中英

System.NullReferenceException-調用輔助頁面

[英]System.NullReferenceException - Calling secondary page

我的組件(ascx):

這個組件是我頁面的一部分,和他一起,我打開了一個新頁面(下一個代碼)。

    public void LoadSeller(string name, string id)
    {
        this.txtSeller.Text = name;
        this.hdnSellerID.Value = id;
    }

我的彈出窗口(aspx):

使用此代碼,我進行了一些搜索並選擇了GridView上的一項,然后將其發送回我的ascx。

    protected void btnSave_Click(object sender, EventArgs e)
    {
        Components.BasicData basicData= new Components.BasicData();

        Button save = (Button)sender;
        basicData.LoadSeller("TEST", save.CommandArgument);
    }

回發有效,我正在接收正確的數據(已通過調試檢查)。 但是txt和hidden都為空(就像未加載一樣),它們在沒有我的彈出窗口的情況下仍能正常工作,但我需要我的彈出窗口。

有任何想法嗎 ?

PS:我的viewState是UP。

我調試了我的整個代碼,它停止在

this.txtSeller.Text =名稱;

LoadSeller的第一行。 這表示“ this.txtSeller”為空,我不知道為什么。 我檢查了我的.designer.cs並聲明了this.txtSeller。 (如果我不嘗試從其他頁面加載,它也可以工作)

Obs:我想知道我的代碼是否可能以某種方式破壞了我另一頁上的負載(或類似的東西)。

感謝您的幫助^。^

編輯:

我的結構是這樣的:

Control1

Control2

    **Open pop up**

Control3

彈出

Search

Gridview with buttons

網格視圖中的按鈕

Goes to my second code "my pop up (aspx):"

Close pop up

在Control2中,我有第一個代碼“我的組件(ascx):”

字幕:Control == userControl

面包屑導航:

    • 組件(文件夾)
      • BasicData.ascx
    • PopUp.aspx

此行Components.BasicData basicData= new Components.BasicData(); 不是創建自定義控件以及他的所有內部控件,而是指向現有控件的指針。

如果您已經准備好在此頁面上包含控件,則可以通過控件的ID直接調用此函數。 所有准備就緒的控件都與您的頁面一起存在,只需調用它即可。

protected void btnSave_Click(object sender, EventArgs e)
    {
        Button save = (Button)sender;
        YourCustomControlID.LoadSeller("TEST", save.CommandArgument);
    }

現在,如果您希望將數據發送到下一頁,則首先創建一個類,以保留您的信息,信息將在頁面之間移動並填充數據。

在每個頁面中,您都有對該類的引用,該類是一個變量,該ether創建一個新的ether從上一頁獲取它。 您將其存儲在ViewState上

現在從第1頁->第2頁。

您通過設置將其從Page1發送到

PostBackUrl="Page2.aspx"

在page2.aspx上,您可以設置獲取信息的位置

<%@ PreviousPageType VirtualPath="~/Page1.aspx" %>

你得到他們...

if (Page.PreviousPage != null)
{
    if(Page.PreviousPage.IsCrossPagePostBack == true)
    {
        GetTheClass = PreviousPage.MyDataClass;
    }
}

另一種手動方式是使您的類可訪問,通過post作為xml發送,然后在下一頁上對其進行解碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM