赤日炎炎下裸体跪求高手解答!在线等

ivanlee008 2007-07-10 03:41:37
树形treeview控件,初始化能构造出来,加入过滤条件后就不能构造出来了。方法如下。
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);

}

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);
}
...全文
963 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wodixiaoniao 2007-07-16
  • 打赏
  • 举报
回复
^_^
viena 2007-07-11
  • 打赏
  • 举报
回复
是否倒分?楼主请解释
东风E9527 2007-07-10
  • 打赏
  • 举报
回复
发消息给我
ttdy 2007-07-10
  • 打赏
  • 举报
回复
羡慕各位!多多帮助好不?多么希望有一个指导我呀
vainnetwork 2007-07-10
  • 打赏
  • 举报
回复
看不出来
ivanlee008 2007-07-10
  • 打赏
  • 举报
回复
回楼上的,我第一次和第二次调用的完全是同一个方法。。。
ezhuyin 2007-07-10
  • 打赏
  • 举报
回复
看得晕晕。。。只能猜测。。。

你重新调用了数据以后有没有再次做DataBinding()?

控件第二次消失,很多都是因为第二次没有重新绑定数据源。
wronging 2007-07-10
  • 打赏
  • 举报
回复
路过 不懂
ivanlee008 2007-07-10
  • 打赏
  • 举报
回复
恩,楼上有道理,最简炼的描述方法就是,第一次用PopulateFunctionsTree(str_serch);构建树可以成功,第二次用时,中间的数据取的是正确的,树控件上的值也是对的,就是页面上的树消失了。。。
syfsz 2007-07-10
  • 打赏
  • 举报
回复
呵呵,问个问题也没有必要这么作贱自己。

问问题尽量简练点,动不动贴这么一大块代码,你调试都调不出来,叫人家怎么看啊。尽量自己把出现问题的范围缩小到最小的范围里。
ivanlee008 2007-07-10
  • 打赏
  • 举报
回复
本来没有tv_words.Dispose();,也不行。
patrickpan 2007-07-10
  • 打赏
  • 举报
回复
把 tv_words.Dispose();去掉试试
ivanlee008 2007-07-10
  • 打赏
  • 举报
回复
重新写了个测试页,简化了一下,还是老样子,点查询按钮的时候控件就不见了(我把查询条件写死了),一步步调试数据都是正确的,取数方法是对的,甚至节点都有了数据,就是在页面上什么都看不见。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PopulateFunctionsTree(str_serch);
}
}

protected void PopulateFunctionsTree(string str_serch)
{
tv_words.Nodes.Clear();
tv_words.
tv_words.Dispose();
TreeNode tn_root = new TreeNode();
tn_root.Text = "";
tn_root.Value = "";
tv_words.Nodes.Add(tn_root);


DataView dv1;
DataTable dt1 = new DataTable();

if ((new Words()).getTree("userid=1", 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=1", 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);

}

protected void btn_serch_Click(object sender, EventArgs e)
{

str_serch = "title like '%s%'";
PopulateFunctionsTree(str_serch);
}
xuan.ye 2007-07-10
  • 打赏
  • 举报
回复
ddl_Sort.SelectedValue.ToString()???这句用不用改改?
ddl_Sort.selectitem.value;
MicroSoftor 2007-07-10
  • 打赏
  • 举报
回复
起来吧,别跪啦
上面有人已经说的很清楚
- -!
自己调试才是正道
与其在这发帖,早就弄出来了。
GXY2005 2007-07-10
  • 打赏
  • 举报
回复
BearRui(开心熊 | 接外包(案例:www.myeglobal.com)) ( ) 信誉:110 Blog 加为好友 2007-07-10 15:58:05 得分: 0


把裤子穿上再说,看把JIJI给晒的,都快晒成非洲牙签了!!!
-----------------------------
关键是还软了,当牙签都不行!

SassyBoy 2007-07-10
  • 打赏
  • 举报
回复
把裤子穿上再说,看把JIJI给晒的,都快晒成非洲牙签了!!!
-------------------------------------------------------
本来无一物,何来牙签?!!!
patrickpan 2007-07-10
  • 打赏
  • 举报
回复
还可以精减:
protected void btn_serch_Click(object sender, EventArgs e)
{
str_serch = "title like '%" + this.Tbx_content.Text.Trim() + "%' and sort='" + this.ddl_Sort.SelectedValue.ToString().Trim() + "'";
PopulateFunctionsTree(str_serch);
}
楼主的btn_serch_Click中的代码和上面两句代码等效,在PopulateFunctionsTree(str_serch);
设置段点,看str_serch中的值是否正确。
patrickpan 2007-07-10
  • 打赏
  • 举报
回复
string str_share;
str_share = this.ddl_Share.SelectedValue.ToString() == "0" ? "False" : "True";
//str_share貌似没有任何作用!!!

if (Tbx_content.Text.Trim() != "")
{
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);

上面的代码直接精减位:

if (Tbx_content.Text.Trim() != "")
{
str_serch = "title like '%" + this.Tbx_content.Text.Trim() + "%' and sort='" + this.ddl_Sort.SelectedValue.ToString().Trim() + "'";
}
PopulateFunctionsTree(str_serch);
然后设个断点调试,看str_Seach的值是否正确。
PrinceGay 2007-07-10
  • 打赏
  • 举报
回复
调试程序出错的时候要记得分析错误的原因
你可以预想一下错误出现在什么地方,然后着重对这块代码进行分析
这样不但可以把你的程序错误快速找出,而且还能锻炼你的判断能力
如果以后再出现同意的错误,你就能很快找到错误所在
加载更多回复(3)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧