系统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
- 组件(文件夹(
此行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发送,并在下一页对其进行解码。