国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net dataview做無限極分類的又一用法

2020-01-18 01:07:31
字體:
來源:轉載
供稿:網友
數(shù)據(jù)庫結構:
classidid 主鍵
jobClassName 對應的類型名稱
ClassName 對應的父類的id
通常做法:

復制代碼 代碼如下:

private void Display(string parentid, String space)
{
DataTable dt;
String strSQL;
strSQL = "Select * From Tree Where ParentID =" + parentid + " Order By ClassID DESC";
SqlDataAdapter sda = new SqlDataAdapter(strSQL, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "Tree");
dt = ds.Tables["Tree"];
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
strOpinion += space + "<font color=red>[" + dr["JobClassName"].ToString() +"<br>";
Display(dr["ClassID"].ToString(), "            " + space,false);
}
}
}

很明顯,這種做法是每個父分類都得建立一次連接,完全浪費資源
現(xiàn)在一次取出所有分類,使用DataView的RowFilter屬性做多次過濾
關鍵代碼

復制代碼 代碼如下:

public partial class tree_Default : System.Web.UI.Page
{
DataTable dt = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind(0);
}
}
public void bind(int pid)
{
DataTable dt1 = bindTree(pid);
foreach (DataRow dr in dt1.Rows)
{
int id = Convert.ToInt32(dr["classid"].ToString());
if (pid == 0)
Response.Write("<div style='width:100%;float:right;'><h3>" + dr["jobclassname"].ToString() + "</h3></div>");
else
Response.Write("<div style='width:25%;float:left;'>"+dr["jobclassname"].ToString()+"</div>");
bind(id);
}
}
public DataTable bindTree(int pid)
{
if (dt == null)
dt = new data().getCatelogs();
DataView root = dt.DefaultView;
root.RowFilter = "Parentid=" + pid;
return root.ToTable();
}
}

這樣的話,也就沒必要浪費資源的了。
其實這篇文章有些牽強了,一般分類都很少做改動的,直接用緩存或靜態(tài)化處理就可以了,只是想到了記錄一下O(∩_∩)O~。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚州市| 舟山市| 江陵县| 和平县| 甘泉县| 阿克| 大邑县| 贵州省| 绍兴市| 东明县| 芷江| 酉阳| 东光县| 虞城县| 冕宁县| 泾阳县| 革吉县| 马关县| 永顺县| 平和县| 广灵县| 金华市| 鄯善县| 鹰潭市| 滕州市| 黄浦区| 玛纳斯县| 南城县| 饶河县| 景谷| 贵州省| 黔东| 白城市| 南昌县| 隆化县| 丹江口市| 保定市| 裕民县| 扬中市| 南宫市| 烟台市|