您的位置:首页 > 其它

无限类别,无限子类,无限菜单,无限规则, _层的的下属计算

2006-09-21 10:59 148 查看
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { string sql=""; Inc inc=new Inc(); if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem) { ((Label)e.Item.FindControl("numbers")).Text=this.number.ToString(); this.number+=1; e.Item.Attributes.Add("onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#6699ff'"); e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=c"); int classID=Convert.ToInt32(DataBinder.Eval(e.Item.DataItem,"id"));//本类ID int layer=Convert.ToInt32(DataBinder.Eval(e.Item.DataItem,"layer"));//本类层 int parent=Convert.ToInt32(DataBinder.Eval(e.Item.DataItem,"parent"));//本类的父类 ((HyperLink)e.Item.FindControl("hlGo")).NavigateUrl="admin_Addproduct.aspx?classid="+classID.ToString()+"&layer="+Convert.ToString(layer+1)+"&parent="+parent.ToString(); //计算本类下商品数量 int theClassProCount=0;//本类下商品数量,不包含子类商品 sql="select count(*) from product where proClassID="+classID; theClassProCount=Convert.ToInt32(inc.getItem(sql)); //计算本类下所有商品数量 int theClassProCountAll=theClassProCount;// int theClassLayer=0;//类表中层数量 sql="select top 1 layer from proclass order by layer desc"; theClassLayer=Convert.ToInt32(inc.getItem(sql)); sql="select id from proClass where parent="+classID; DataSet ds=inc.getDataSet(sql);//本类下一层子类 theClassProCountAll=theClassProCountAll+this.classCountPro(layer+1,theClassLayer,ds); ((Label)e.Item.FindControl("lblProCount")).Text=theClassProCount.ToString()+"/"+theClassProCountAll.ToString(); } } private int classCountPro(int start,int over,DataSet ds) { int count=0; string sql=""; Inc inc=new Inc(); if(start<=over) { foreach (DataRow row in ds.Tables[0].Rows) foreach (DataColumn column in ds.Tables[0].Columns) if (row[column] != null) { sql="select count(*) from product where proClassID="+row[column].ToString(); count=count+Convert.ToInt32(inc.getItem(sql)); sql="select id from proClass where parent="+row[column].ToString(); DataSet dsNew=inc.getDataSet(sql); count=count+this.classCountPro(start+1,over,dsNew); } return count; } return 0; }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐