树形treeview控件,初始化能构造出来,加入过滤条件后就不能构造出来了,代码如下 请问如何修改 public static string str_wordsid,str_serch;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!ComIP.getSession(this.Session))
        {
            Response.Redirect("ksindex.aspx");
            return;
        }        if (!Page.IsPostBack)
        {
            ViewState["userID"] = Security.ReverseUserId(Session["userID"].ToString().Trim());
            ViewState["sysID"] = Session["sysID"].ToString().Trim();
            CreateDropDownList(ViewState["sysID"].ToString());
            str_serch = "";
            PopulateFunctionsTree(str_serch); //构造树的函数
        }    
    }
    
    private void CreateDropDownList(string str_sysID)
    {
        DataTable dt = new DataTable();
        if ((new Items()).getSort("sysID=" + str_sysID + " and fields='F17'", ref dt))
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                this.ddl_Sort.Items.Add(new ListItem(dt.DefaultView[i][4].ToString()));
                this.ddl_Sort.Items[i].Value = dt.DefaultView[i][4].ToString(); ;
            }
        }    }    protected void PopulateFunctionsTree(string str_serch)
    {
        TreeNode tn_root = new TreeNode();
        tn_root.Text = "";
        tn_root.Value = "";
        tv_words.Nodes.Clear();
        tv_words.Nodes.Add(tn_root);
        DataView dv1;
        DataTable dt1 = new DataTable();        if ((new Words()).getTree("userid=" + ViewState["userID"].ToString(), ref dt1))
        {
            dv1 = dt1.DefaultView;
            if (str_serch != "")
            {
                dv1.RowFilter = str_serch;
            }
            else
            {
                dv1.RowFilter = "";
            }            int i1;
            for (i1 = 0; i1 <= dv1.Count - 1; i1++)
            {
                CreateTreeNode(tn_root, "T", dv1[i1]["sort"].ToString());
            }
        }        
    }    protected void CreateTreeNode(TreeNode tnd, string str_value, string str_text)
    {
        TreeNode tn_other = new TreeNode();        tn_other.Value = str_value;
        tn_other.Text = str_text;
        DataView dv2;
        DataTable dt2 = new DataTable();        if ((new Words()).getTree("userid=" + ViewState["userID"].ToString(), ref dt2))
        {
            dv2 = dt2.DefaultView;
            dv2.RowFilter = "sort='" + str_text.Trim() + "'";            tnd.ChildNodes.Add(tn_other);            int i2;
            for (i2 = 0; i2 <= dv2.Count - 1; i2++)
            {
                CreateTreeNode2(tn_other, dv2[i2]["wordsid"].ToString(), dv2[i2]["title"].ToString());            }
        }        
    }    protected void CreateTreeNode2(TreeNode tnd, string str_value, string str_text)
    {
        TreeNode tn_other = new TreeNode();        tn_other.Value = str_value;
        tn_other.Text = str_text;        tnd.ChildNodes.Add(tn_other);    }    private void SetWords(string selectvalue)
    {
        if (selectvalue == "T")
        { 
        }
        else
        {            h_words model = new h_words();
            Words words = new Words();            model = words.GetModel(int.Parse(selectvalue));
            //int_curveID = int.Parse(model.curveID);
            this.Tbx_title.Text = StringDeal.ReplaceOutput(model.title);
            this.Tbx_contents.Text = StringDeal.ReplaceOutput(model.content);
            this.Tbx_setman.Text = StringDeal.ReplaceOutput(model.setman);
            this.Tbx_share.Text = (model.share == 0) ? "自用" : "共用";
            this.Tbx_setdate.Text = model.setdate.ToString();
        }
       
    }    protected void tv_words_OnSelectedNodeChanged(object sender, EventArgs e)
    {
        str_wordsid =this.tv_words.SelectedNode.Value;
        SetWords(str_wordsid);
       
    }    protected void A_DelClick(object sender, System.EventArgs e)
    {
        (new Words()).Delete(Int32.Parse(str_wordsid));
       // tv_words.Nodes.Remove(this.tv_words.SelectedNode);        TreeNode tmp = tv_words.SelectedNode;
        if (tmp.Depth == 0)
            tv_words.Nodes.Remove(tmp);
        else
        {
            TreeNode parentNode = (TreeNode)tmp.Parent;
            parentNode.ChildNodes.Remove(tmp);
        }        PopulateFunctionsTree(str_serch);
   
    }    protected void A_update(object sender, System.EventArgs e)
    {
        Response.Write("<script language='javascript'>window.open('h_wordsedit.aspx?rowid=" + str_wordsid + "','','left=0,top=0,status=yes,menubar=no,resizable=no,toolbar=no,center=yes,scrollbars=yes,width=1024px,height=690px')</script>");    }
    protected void btn_serch_Click(object sender, EventArgs e)
    {
        string str_share;
        str_share = this.ddl_Share.SelectedValue.ToString() == "0" ? "False" : "True";
        if (Tbx_content.Text.Trim() != "")
        {
            //str_serch = "title like %" + this.Tbx_content.Text.Trim() + "' and sort='" + this.ddl_Sort.SelectedValue.ToString().Trim() + " and str_share='" + str_serch + "'"
            str_serch = "title like '%" + this.Tbx_content.Text.Trim() + "%' and sort='" + this.ddl_Sort.SelectedValue.ToString().Trim() + "'";
        }
        else
        {
            str_serch = "sort='" + this.ddl_Sort.SelectedValue.ToString().Trim()+ "'";
        }
        PopulateFunctionsTree(str_serch);
    }