日期:2014-05-18  浏览次数:20395 次

用户控件回发后数据丢失了
一个页面中用了一个订单用户控件

订单用户控件中又使用了订单项用户控件


当回发数据时候,订单用户控件的数据有显示,可是订单项的数据丢失了

正常情况
############################################################

订单编号:   E0709130318335142-01   新订单   自行取消查看订购商品  
创建时间:   2007-9-13   15:18:13   共   0元    
关闭订购商品信息  
送货方式:   平邮       共订购   3   种产品  

  21世纪赢的策略(企业变革)   订购数量:   订购   10   件   (   11.00   元/件)   共   110.00   元    

  产品名   订购数量:   订购   30   件   (   11.00   元/件)   共   330.00   元    

  21世纪赢的策略(企业变革)   订购数量:   订购   20   件   (   11.00   元/件)   共   220.00    
 

###################################################################

回发后

#####################################################################

订单编号:   E0709130318335142-01   新订单   自行取消查看订购商品  
创建时间:   2007-9-13   15:18:13   共   0元    
关闭订购商品信息  

####################################################################

---------------------------

订单项用户控件
------------------------------
public   class   OrderItemList   :   System.Web.UI.UserControl,System.Web.UI.IPostBackEventHandler,System.Web.UI.IPostBackDataHandler
{
protected   System.Web.UI.WebControls.DataList   dlOrderItem;

//订单号
private   string   _order_number;
//送货方式
private   string   _shipmethod;
private   int   _recordCount   =   0;

private   void   Page_Load(object   sender,   System.EventArgs   e)
{
//   在此处放置用户代码以初始化页面
if(!IsPostBack)
BindOrderItemList();
}

#region   Web   窗体设计器生成的代码
override   protected   void   OnInit(EventArgs   e)
{
//
//   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///   <summary>
/// 设计器支持所需的方法   -   不要使用代码编辑器
/// 修改此方法的内容。
///   </summary>
private   void   InitializeComponent()
{
this.dlOrderItem.ItemDataBound   +=   new   System.Web.UI.WebControls.DataListItemEventHandler(this.dlOrderItem_ItemDataBound);
this.Load   +=   new   System.EventHandler(this.Page_Load);

}
#endregion

public   string   OrderNumber
{
get
{
if(ViewState[ "OrderItem "]!=null)
_order_number   =   ViewState[ "OrderItem "].ToString();
return   _order_number;
}
set
{
ViewState[ "OrderItem "]   =   value;
_order_number   =   value;
}
}

public   string   ShipMethod
{
get
{
if(ViewState[ "ShipMethod "]==null)
_shipmethod   =   ViewState[ "ShipMethod "].ToString();
return   _shipmethod;
}
set{
_shipmethod   =   value;
ViewState[ "ShipMethod "]   =value;
}
}

private   void   BindOrderItemL