系统NullReferenceException-正在调用辅助页

本文关键字:调用 NullReferenceException- 系统 | 更新日期: 2023-09-27 17:48:56

我的组件(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都是null(就像它们没有加载一样(,它们在没有我的弹出窗口的情况下工作,但我需要我的弹出菜单。

有什么想法吗?

PS:我的视图状态为UP。

我调试了我的整个代码,它在停止了

this.textSeller.Text=名称;

LoadSeller的第一行。上面说"This.txtSeller"为空,我不知道为什么。我检查了我的.designer.cs,这是.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

面包屑导航:

  • 解决方案
    • 组件(文件夹(
      • 基本数据.ascx
    • PopUp.aspx

系统NullReferenceException-正在调用辅助页

此行Components.BasicData basicData= new Components.BasicData();不是创建自定义控件及其所有内部控件,它是指向现有控件的指针。

如果您已经准备好在这个页面上包含您的控件,那么您可以通过控件的id直接调用这个函数。这个控件与您的页面一起存在,只需调用它即可

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

现在,如果你想将数据发送到下一页,你首先要创建一个类来保存你的信息,它将从一页移动到另一页并填充数据。

在每一页中,你都有一个对这个类的引用,一个变量,这个以太创建了一个新的以太,从上一页获取它。您将其存储在ViewState 上

现在从第1页->第2页。

您通过设置将其从第1页发送到

PostBackUrl="Page2.aspx"

在page2.aspx上,您可以设置在哪里获取信息

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

然后你通过…得到它们

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

另一种手动方法是使类可序列化,通过post将其作为xml发送,并在下一页对其进行解码。