復(fù)制代碼 代碼如下: private void Display(string parentid, String space) { DataTable dt; String strSQL; strSQL = " /> 亚洲精品国产动漫,久久久无码精品亚洲日韩按摩,一区福利视频

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

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

數(shù)據(jù)庫結(jié)構(gòu):
classidid 主鍵
jobClassName 對應(yīng)的類型名稱
ClassName 對應(yīng)的父類的id
通常做法:

復(fù)制代碼 代碼如下:
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屬性做多次過濾
關(guān)鍵代碼

復(fù)制代碼 代碼如下:
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();
}
}

這樣的話,也就沒必要浪費資源的了。
其實這篇文章有些牽強(qiáng)了,一般分類都很少做改動的,直接用緩存或靜態(tài)化處理就可以了,只是想到了記錄一下O(∩_∩)O~。

AspNet技術(shù)asp.net dataview做無限極分類的又一用法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 分宜县| 梁平县| 通许县| 岳池县| 随州市| 富川| 福州市| 房山区| 甘洛县| 绵阳市| 安化县| 新巴尔虎左旗| 南木林县| 蒙山县| 肃北| 大城县| 六枝特区| 曲麻莱县| 虹口区| 巨野县| 莲花县| 云梦县| 株洲市| 聊城市| 靖安县| 清水县| 鄂尔多斯市| 大竹县| 北安市| 镇江市| 韶关市| 勃利县| 宜城市| 宁安市| 邵东县| 舞钢市| 原阳县| 泰顺县| 淄博市| 六安市| 江山市|