树形treeview控件,初始化能构造出来,加入过滤条件后就不能构造出来了
树形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);
}
[解决办法]
晕,谁看得明白。。。