代码如下,盼望大家能帮忙解决,十分感谢.
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
protected SoftWare softWare;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitSoftWareInfo();//给software 赋值
}
}
void initSoftWareInfo()
{
//利用SoftwareFunciton类中的静态方法 GetSoftWareByComSoftwareID()返回一个Software对象的引用.这里是可以看到software 不为null
softWare = SoftWareFunction.GetSoftWareByComSoftwareID(new Guid(Request["comSoftwareID"]));
}
//页面上按钮的click事件
protected void btnOk_Click(object sender, EventArgs e)
{
string abc = softWare.SoftWareName;//这里报错 softWare 为null,Object Reference can not set to an instance of object
}}为简单说明问题 GetSoftwareByComSoftwareID方法 可如下
public static SoftWare GetSoftWareByComSoftwareID(Guid comSoftwareID)
{
SoftWare sw=new SoftWare();
sw.SoftWareName = "yumen";
return sw;
}
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
public partial class _Default : System.Web.UI.Page
{
protected SoftWare softWare;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitSoftWareInfo();//给software 赋值
}
}
void initSoftWareInfo()
{
//利用SoftwareFunciton类中的静态方法 GetSoftWareByComSoftwareID()返回一个Software对象的引用.这里是可以看到software 不为null
softWare = SoftWareFunction.GetSoftWareByComSoftwareID(new Guid(Request["comSoftwareID"]));
}
//页面上按钮的click事件
protected void btnOk_Click(object sender, EventArgs e)
{
string abc = softWare.SoftWareName;//这里报错 softWare 为null,Object Reference can not set to an instance of object
}}为简单说明问题 GetSoftwareByComSoftwareID方法 可如下
public static SoftWare GetSoftWareByComSoftwareID(Guid comSoftwareID)
{
SoftWare sw=new SoftWare();
sw.SoftWareName = "yumen";
return sw;
}
去掉 if (!IsPostBack)代码后,software 值不为空了.触发btnOk_Click事件时候,由于去掉了if (!IsPostBack)代码,因此在执行page_load时又执行了InitSoftWareInfo().我怎样保存第一次page_load 时候初始化了的软件对象呢,而不需要点了按钮又要重新调用InitSoftWareInfo().
谢谢!TO:bitker
Software 是基本数据结构,包括软件的一些属性信息,它的属性有 软件名,软件发布商,软件id等.
而softwarefunction类则是一些和软件相关的 处理业务逻辑方法的类,它下面有这样的方法:
GetSoftwareNameBySoftwareID,GetSoftwareIDByName等等.
ViewState["softWear"] = softWare;
SoftWear sf = ViewState["softWear"] as SoftWear ;