private void buildTree(TreeView tv, string kind) { tv.Nodes.Clear(); string sql = ""; switch (kind) { case "t_RepairItemDetail": sql = "select isNull(ItemIDParentID,'') as ItemIDParentID,ItemID,ItemName,ItemStandHours from t_RepairItemDetail where 1=1 order by ItemID"; break; } DataTable dt = DBHelp.ReturnDataTable(sql, kind); TreeNode tempNode = null; TreeNode tempNodeFirst = null; string strItemID= ""; string strItemName = ""; string strItemIDParentID = ""; tempNodeFirst = new TreeNode(); tempNodeFirst.Value = ""; tempNodeFirst.Text = "全部"; tv.Nodes.Add(tempNodeFirst); for (int i = 0; i < dt.Rows.Count; i++) { strItemID = dt.Rows[i]["ItemID"].ToString(); strItemName = dt.Rows[i]["ItemName"].ToString(); strItemIDParentID= dt.Rows[i]["ItemIDParentID"].ToString(); if (strItemIDParentID == "") { tempNode = new TreeNode(); tempNode.Value = strItemID; tempNode.Text = strItemID + ":" + strItemName; tempNodeFirst.ChildNodes.Add(tempNode); } else { while ( strItemID.Substring(0, ( strItemID.Length <= tempNode.Value.Length ? strItemID.Length : tempNode.Value.Length)) != strItemIDParentID) { if (tempNode.Parent != null) { tempNode = ((TreeNode)tempNode.Parent); } else { tempNode = new TreeNode(); tempNode.Value = strItemID; tempNode.Text = strItemID + ":" + strItemName; tempNodeFirst.ChildNodes.Add(tempNode); break; } strItemIDParentID = tempNode.Value; } TreeNode node1 = new TreeNode(); node1.Value = strItemID; node1.Text = strItemID + ":" + strItemName; tempNode.ChildNodes.Add(node1); tempNode = node1; } } tv.ExpandDepth = 3; }
有誰能告訴我這段代代碼中的這句話中的:?while ( strItemID.Substring(0, ( strItemID.Length <= tempNode.Value.Length ?? strItemID.Length : tempNode.Value.Length)) != strItemIDParentID)
tempNode的值是從哪里來的?我這里寫的是一個(gè)TreeView控件的綁定
3 回答

森欄
TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
if (strItemIDParentID == "")
{
tempNode = new TreeNode();
tempNode.Value = strItemID;
tempNode.Text = strItemID + ":" + strItemName;
tempNodeFirst.ChildNodes.Add(tempNode);
}
在這里實(shí)例化的,如果第一次循環(huán)不滿足strItemIDParentID?==?"",那么你的程序應(yīng)該就要拋異常了

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
tempNode = new TreeNode();
tempNode.Value = strItemID;
你不是在if里面做的處理嗎?
- 3 回答
- 0 關(guān)注
- 340 瀏覽
添加回答
舉報(bào)
0/150
提交
取消