using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data;
using Gethome.Model;
using Gethome.Web.UI.Control;
using Gethome.Common;
using System.Collections.Generic;namespace Gethome.Web.AddEvent
{
    public partial class AddEvent2 : Gethome.Web.UI.Page.BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) 
            {
                
            }
这个方法到底是放在Page.IsPostBack里面还是外面,放在里面。我点击添加按钮列表就没了。下面还是没取出什么值
            FriendBind();
            
        }
listBox绑定方法
        protected void FriendBind() 
        {
            int UserID = this.GetUserID();
            IList<FriendInfo> list = new Gethome.BLL.User.Friend().GerListFriend(UserID);
            foreach (FriendInfo fd in list)
            {
                ListItem li = new ListItem();
                li.Text = fd.userBasic.RealName;
                li.Value = fd.userBasic.UserID.ToString(); ;
                Lb_Friend.Items.Add(li);
            }
        }这个地方Lb_Friend.Items[i].Selected 一直是False,一直没进去。急死我了。
        protected void SelectFrind_Click(object sender, EventArgs e)
        {
            string Participant = "";
            string ParticipantId = "";
            for (int i = 0; i < Lb_Friend.Items.Count; i++)
            {
                if (Lb_Friend.Items[i].Selected == true)
                {
                    int UserID =Convert.ToInt32(Lb_Friend.Items[i].Value);
                    UserBasicInfo ub = new Gethome.BLL.User.User().GetUserBasic(UserID);
                    Participant += ub.RealName + ",";
                    ParticipantId += ub.UserID+",";
                }
            }
            Txt_Participant.Text = Participant;
            Hid_Participant.Value = ParticipantId;
        }
    }
}
大哥大姐们。看的说下了。那个绑定方法是不是有什么不对的。为什么一直是False,取不到值呀,

解决方案 »

  1.   

    if (!IsPostBack)  
     {//绑定数据}
    可无刷新操作。在外面回传重新绑定
      

  2.   


    protected void Page_Load(object sender, EventArgs e)
      {
      if (IsPostBack)
          return;
      
      //在retrun 后面写你的操作
      
      FriendBind(); 
      }
      

  3.   

    我放在里面了。可是第一次我的列表有。点击添加后,那个地方还是FALSE,并且列表也没了。空了
      

  4.   

    给控件绑定数据时,请确保放在这代码块里:
    if (!Page.IsPostBack)  
      {
        
      }//如果出现你4楼所说的情况,请检查是否禁止了页面或该控件的状态保存属性
    protected void SelectFrind_Click(object sender, EventArgs e)
      {
      Txt_Participant.Text =Lb_Friend.Items.Count.ToString();//你这里尝试显示下拉框的数据项看下,估计是0
    }
      

  5.   

    是0项的话,就说明下拉框在回调时木数据如果你确定自己的绑定数据操作是放在if (!Page.IsPostBack)   
      {
        
      }后,请检查一下页面的this.Page.EnableViewState=true;
    然后再确保下拉控件的EnableViewState属性也为true
      

  6.   

    EnableViewState属性也为true了
    我放在if (!Page.IsPostBack)里面了。
    还是那个老样子。我第一次进取。,列表都有值。我点击添加刷新下就没了。
    并且 Lb_Friend.Items.Count这个地方居然是0了。我实在是看不出哪里出错了   
      

  7.   

    假如说你现在的页面保留状态属性和该下拉控件的保存状态属性都为true,则一般不会出现回调时状态丢失的情况一般我们回调时,页面的protected void Page_Load(object sender, EventArgs e)
    事件会被再次执行,之所以让你把绑定数据放到if (!Page.IsPostBack)  ,是防止再次绑定数据,否则会清空用户回送前的已选择操作,就想当于重新设置了下拉框的初始数据状态,就算用户已选择过,它还是默认选择第一项。
    按你现在的情况,如果你确定在获取数据之前,都没有再次绑定数据的操作,则唯一的解释就是:你的这个下拉控件是动态添加的,而非在页面源码里显式声明(从工具上拖放)
    //不过看你的代码,感觉不像是动态添加的控件
      

  8.   

    public partial class AddEvent2 : Gethome.Web.UI.Page.BasePage//这里,你的BasePage类里是否处理一些不该处理的东东(你可以使用另一个文本输入框输入些文字试下,看回调时能否取得到输入的文字内容,如果可以,则证明没问题,如果和下拉框一样都取不到客户端调回来的值,则该类有问题)其实你可以另开一个新页面或新的下拉框做验证,看下是不是当前页面有问题