注册 登录
编程论坛 ASP.NET技术论坛

[求助]请问这段如何理解??

本刚 发布于 2007-03-26 22:35, 392 次点击
string item=((Label)(e.Item.FindControl("ItemLabel"))).Text;
ProView.RowFilter="ProName='"+item+"'";
if(ProView.Count>0)
{
ProView.Delete(0);
}
ProView.RowFilter="";
this.DataList1.EditItemIndex=-1;
BindList();
重点在红色部分,,谢谢!!!
6 回复
#2
windstores2007-03-26 22:55
ProView 是啥东西 daima发全压~
#3
本刚2007-03-26 23:11

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace DataListTest3_25
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList DataList1;
DataTable Pro=new DataTable();
DataView ProView;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
GetSource();
if(!IsPostBack)
{
BindList();
}
}
private void GetSource()
{
if(Session["ShoppingCart"]==null)
{
DataRow dr;
Pro.Columns.Add(new DataColumn("ProAmount",typeof(int)));
Pro.Columns.Add(new DataColumn("ProName",typeof(string)));
Pro.Columns.Add(new DataColumn("ProPrice",typeof(double)));
Session["ShoppingCart"]=Pro;
for(int i=1;i<=9;i++)
{
dr=Pro.NewRow();
if((i%2)!=0)
{
dr[0]=2;
}
else
{
dr[0]=1;
}
dr[1]="商品"+i.ToString();
dr[2]=(1.23*(i+1));
Pro.Rows.Add(dr);

}
}
else
{
Pro=(DataTable)Session["ShoppingCart"];
}
ProView=new DataView(Pro);
ProView.Sort="ProName";
return;
}
private void BindList()
{
this.DataList1.DataSource=ProView;
this.DataList1.DataBind();
}

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

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

}
#endregion

private void DataList1_EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex=e.Item.ItemIndex;
BindList();
}

private void DataList1_CancelCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex=-1;
BindList();
}

private void DataList1_DeleteCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
{
string item=((Label)(e.Item.FindControl("ItemLabel"))).Text;
ProView.RowFilter="ProName='"+item+"'";
if(ProView.Count>0)
{
ProView.Delete(0);
}
ProView.RowFilter="";
this.DataList1.EditItemIndex=-1;
BindList();
}
}
}

#4
windstores2007-03-27 00:12
string item=((Label)(e.Item.FindControl("ItemLabel"))).Text;//找到datalist中控件
ProView.RowFilter="ProName='"+item+"'";// 设置在ProView 中查看哪些行:即字段ProName的值为item的行。
if(ProView.Count>0) //如果上面筛选结果的行存在。。比如有3行
{
ProView.Delete(0); //删除结果中的第一行
}
ProView.RowFilter=""; //重新设置ProView中显示的行。ProView.RowFilter="" 表示显示所有行(条件为空)
this.DataList1.EditItemIndex=-1;
BindList();
#5
yunj11052007-03-27 10:32

楼上你好啊!把你解释收下了

#6
bygg2007-03-27 12:37
以下是引用windstores在2007-3-27 0:12:56的发言:
string item=((Label)(e.Item.FindControl("ItemLabel"))).Text;//找到datalist中控件
ProView.RowFilter="ProName='"+item+"'";// 设置ProView中的RowFilter值
if(ProView.Count>0) //如果上面筛选结果的行存在。。比如有3行
{
ProView.Delete(0); //删除结果中的第一行
}
ProView.RowFilter=""; //重新设置ProView中显示的行。ProView.RowFilter="" 表示显示所有行(条件为空)
this.DataList1.EditItemIndex=-1;
BindList();

#7
本刚2007-03-28 22:19

非常的感谢你们!!!!
小弟收下了!!

1