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();
}
}
浙公网安备 33010602011771号