日期:2014-05-17  浏览次数:20406 次

我把TreeView做成用户控件 传值给页面 然后页面不刷新
我把TreeView做成用户控件 需要复用 然后在页面中添加这个用户控件
然后用checkbox选中节点 然后点击Button传值 下面是button代码

ArrayList a = new ArrayList();
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            for (int i = 0; i < this.TvMenu.CheckedNodes.Count; i++)
            {
                if (TvMenu.CheckedNodes[i].ChildNodes.Count == 0) //只添加最后一层子节点
                    a.Add(TvMenu.CheckedNodes[i].Value);
            }
            Session["TreeViewValues"] = a;
            Session["state"] = "leftsearch";
         //   Response.Redirect("/OMMS/contractManage.aspx");
        }

页面中获取ArrayList值得方法放在Page_load中 简写一下
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
else if (Convert.ToString(Session["state"]) == "leftsearch")
                {
                    bindgdv1left();
                }
}

Session的值肯定能接收到 但是用户控件中的button并不会让页面刷新啊 所以进入不了Page_load方法 也就无法绑定GridView了 这个问题我试着在button中用js方法刷新页面没效果 要是直接写上Response.Redirct()确实是可以 但是这样就不容易复用了 也就失去了用户控件的意义了 这个问题怎么解决?

------解决方案--------------------
引用:
引用:中午在睡觉好吧。。。当然没有人啦。
按说默认情况,这个button肯定是会触发postback,为啥不会刷新页面呢?
但你这个page_load是用户控件的还是主页面的就不知道了。

你redirect过去肯定不是postback啊,你的代码是写到if(!IsPostBack)里面还是外面啊?
按按钮的话肯定是要走if(IsP……


你postback和redirect有什么区别吗?除非你想做无刷新