ViewState

ViewStae的定义和作用详见:http://www.runoob.com/aspnet/aspnet-viewstate.html

//此方法用于获取数据

protected void BindGrid()
        {

            long totalCount = DonationDatabaseUtility.GetDataByNCNumTime(Start, End);
            litRecordNum.Text = totalCount.ToString();
            List<DonationDatabase> returnlist = DonationDatabaseUtility.GetAllNoneByDataTime(Start, End);
            foreach (var item in returnlist)
            {
                if (item != null)
                {
                    DonSumMon += Convert.ToInt32(item.DtdDonationPrincipal);
                }
                Literal1.Text = DonSumMon.ToString();
                litDaXiao.Text = MoneySmallToBig(DonSumMon.ToString());
            }

  //将从数据库中读出来的数据用ViewState的方法来复制给“[任意定义的名称]” ,这样ViewState就拿到了数据
            ViewState["Donationlist"] = returnlist;
            rptUser.DataSource = returnlist;
            rptUser.DataBind();

            rptDonation.DataSource = returnlist;
            rptDonation.DataBind();

        }

 

 

//在执行删除操作的时候

protected void linkDelete_Click(object sender, EventArgs e)
        {
            LinkButton linkDelete = (LinkButton)sender;
            if (!string.IsNullOrEmpty(linkDelete.CommandArgument))
            {

    //直接将ViewState赋予的值传递给定义好的List<>类型的参数,注意前后都要注意类型和名称是否统一
                List<DonationDatabase> returnlist = ViewState["Donationlist"] as List<DonationDatabase>;
                List<DonationDatabase> returnlist2 = new List<DonationDatabase>();
                int count = Convert.ToInt32(Literal1.Text);
                DonationDatabase Countmoney = DonationDatabaseUtility.GetIDByMoney(linkDelete.CommandArgument);

    //这样在for或者foreach循环的时候,直接用拿到的View State的值就OK了,效果就是在页面上当你执行删除操作的时候,删除的只是你定义好的View State中的数据,而不 是你正在的数据库中的数据,还有一点要注意的是,要将删除后剩下的数据重新显示在页面上,注意帮当数据的源rptDonation.DataSource = returnlist2;rptDonation.DataBind(); rptUser.DataSource = returnlist2; rptUser.DataBind();要与protected void BindGrid()中绑定的方法不同,才能正常的显示你想要的数据结果;


                foreach (var item in returnlist)
                {
                    if (item != null)
                    {
                        if (linkDelete.CommandArgument.Equals(item.DtbId)) { }
                        else
                        {
                            returnlist2.Add(item);
                        }

                        DonSumMon = count - Convert.ToInt32(Countmoney.DtdDonationPrincipal);
                    }
                }
                DoncatoinCount = Convert.ToInt32(Convert.ToInt32(DoncatoinCount) - 1).ToString();
                DonSumMoney = DonSumMon.ToString();
                if (Countmoney.DtdDonationMode == 1)
                {
                    DonScene = Convert.ToInt32(Convert.ToInt32(DonScene) - 1).ToString();
                    DonSceneMoney = Convert.ToInt32(Convert.ToInt32(DonSceneMoney) - Convert.ToInt32(Countmoney.DtdDonationPrincipal)).ToString();
                }
                if (Countmoney.DtdDonationMode == 3)
                {
                    DonPost = Convert.ToInt32(Convert.ToInt32(DonPost) - 1).ToString();
                    DonPostMoney = Convert.ToInt32(Convert.ToInt32(DonPostMoney) - Convert.ToInt32(Countmoney.DtdDonationPrincipal)).ToString();
                }
                Literal1.Text = DonSumMon.ToString();

    //绑定数据源类型名称
                rptDonation.DataSource = returnlist2;
                rptDonation.DataBind();
                rptUser.DataSource = returnlist2;
                rptUser.DataBind();
            }
        }

posted on 2018-07-19 11:56  肖桐桐  阅读(79)  评论(0)    收藏  举报