viewstate在asp.net中的简单应用

还是以订单为例子,一个订单下面有多条信息,一条信息添加一次,但不能直接添加到数据库里,这时就要保存到session或viewsatte中,这里我选择的是viewstate,因为这个功能不用跨页面,整个过程是在一个页面中完成的,等把订单中的所有信息保存到viewstate中后,再一次把这个viewstate添加到数据库中, 其实我理解的viewstate就跟datatable差不多,尤其是结构上,下面是我项目中的一段详细代码:

 

if (lblWarehouseId.Text  ==   "" ) // 添加
                 {
                    
if(ViewState["WarehousePresent"== null)//判断当前页面的viewstate状态,如果是null,就向里面添加一条,如果不为null,就向里面续加一条
                    {
                        
//DataTable dt = new DataTable();
                        dt.Columns.Add("WarehousePresentId");//这个dt是在这段代码上面声明的
                        dt.Columns.Add("FullName");
                        dt.Columns.Add(
"AbbrName");
                        dt.Columns.Add(
"PresentType");
                        dt.Columns.Add(
"CurrentPrice");
                        dt.Columns.Add(
"SalePrice");
                        dt.Columns.Add(
"OrderQuantity");

                        DataRow dr 
= dt.NewRow();//声明一行
                        dr["WarehousePresentId"= int.Parse(ucWarehousePresent.WarehousePresentList.SelectedValue);;
                        dr[
"FullName"= ucWarehousePresent.WarehousePresentList.SelectedItem.ToString();
                        dr[
"AbbrName"= txtAbbrName.Text.Trim();
                        dr[
"PresentType"= txtPresentType.Text.Trim();
                        dr[
"CurrentPrice"= txtCurrentPrice.Text.Trim();
                        dr[
"SalePrice"= txtSalePrice.Text.Trim();
                        dr[
"OrderQuantity"= txtOrderQuantity.Text.Trim();

                        dt.Rows.Add(dr);
//添加行

                        ViewState[
"WarehousePresent"= dt;把dt赋值给viewstate

                        dgOrderList_Present_WarehouseBind();
            
                    }

                    
else//向viewstate里续加一行
                    {
                        
//DataTable dt = new DataTable();
                        dt = (DataTable)ViewState["WarehousePresent"];

                        DataRow dr 
= dt.NewRow();
                        dr[
"WarehousePresentId"= int.Parse(ucWarehousePresent.WarehousePresentList.SelectedValue);;
                        dr[
"FullName"= ucWarehousePresent.WarehousePresentList.SelectedItem.ToString();
                        dr[
"AbbrName"= txtAbbrName.Text.Trim();
                        dr[
"PresentType"= txtPresentType.Text.Trim();
                        dr[
"CurrentPrice"= txtCurrentPrice.Text.Trim();
                        dr[
"SalePrice"= txtSalePrice.Text.Trim();
                        dr[
"OrderQuantity"= txtOrderQuantity.Text.Trim();

                        dt.Rows.Add(dr);
                        dgOrderList_Present_WarehouseBind();
            
                    }

                }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值