首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

silverght 中 修改DataGrid 中数据, DataGrid 中数据,及时刷新有关问题

2012-03-26 
silverght中修改DataGrid中数据,DataGrid中数据,及时刷新问题C# codepublic class Student{private int id

silverght 中 修改DataGrid 中数据, DataGrid 中数据,及时刷新问题

C# code
  public class Student    {        private int id;        public int Id        {            get { return id; }            set { id = value; }        }        private string className;        public string ClassName        {            get { return className; }            set { className = value; }        }        public Student()        { }    }


C# code
 public ObservableCollection<SUser> GetAllUser()        {            ObservableCollection<SUser> Lsu = new ObservableCollection<SUser>();            string sql = "select * from SUser";            using(SqlDataReader sdr=DBHelper.ExecuteReader(DBHelper.ConnectionStringLocalTransaction,CommandType.Text,sql,null))            {                while(sdr.Read())                {                    SUser su = new SUser();                    su.Id = Convert.ToInt32(sdr["Id"]);                    su.Name = Convert.ToString(sdr["Name"]);                    su.Phone = Convert.ToString(sdr["Phone"]);                    su.Sex = Convert.ToString(sdr["Sex"]);                    su.StudentID = Convert.ToInt32(sdr["StudentID"]);                    su.Adress = Convert.ToString(sdr["Adress"]);                    su.Age = Convert.ToString(sdr["Age"]);                    Lsu.Add(su);                }            }            return Lsu;        }



C# code
public class SUserManager    {        SUserService ssu = new SUserService();        public ObservableCollection<SUser> GetAllUser()        {            return ssu.GetAllUser();        }         /// <summary>        /// 获取所有用户信息        /// </summary>        /// <returns></returns>        public List<SUser> GetAllUserByClassID(int stuID)        {            return ssu.GetAllUserByClassID(stuID);        }                /// <summary>        /// 获取所有用户信息,参数为用户对象        /// </summary>        /// <returns></returns>        public List<SUser> GetAllUserByClassSex(SUser sue)        {            return ssu.GetAllUserByClassSex(sue);        }        /// <summary>        /// 修改用户的信息        /// </summary>        /// <param name="user"></param>        /// <returns></returns>        public int UpdataUser(SUser user)        {            return ssu.UpdataUser(user);        }    }


以下是,修改按钮,点击事件,问题是,修改后 ,DataGrid 控件里的数据,还是没有更新
C# code
 private void btnUpdate_Click(object sender, RoutedEventArgs e)        {            SUser u = new SUser();            u.Name  = this.txtSN.Text.ToString();            u.Sex   = this.txtSx.Text.ToString();            u.Adress = this.txtAd.Text.ToString();            u.Age   = this.txtAg.Text.ToString();            u.Phone = this.txtPh.Text.ToString();            u.StudentID = Convert.ToInt32(this.txtCl.Text.ToString());            u.Id = ((SUser)(this.dgvShow.SelectedItem)).Id;                        DBServiceClient proxyUpdateUser = new DBServiceClient("BasicHttpBinding_IProductService"); //用一个方法 new 一次            proxyUpdateUser.UpdataUserAsync(u);            proxyUpdateUser.UpdataUserCompleted += new EventHandler<UpdataUserCompletedEventArgs>(proxyUpdateUser_UpdataUserCompleted);        }        void proxyUpdateUser_UpdataUserCompleted(object sender, UpdataUserCompletedEventArgs e)        {            this.dgvShow.SelectedItem = e.Result;            this.UpdateLayout();        } 



[解决办法]
你使用的是WCF的BasicHTTPBinding,提交数据后,使用 this.UpdateLayout();无法刷新客户端datagrid。需要手动更新绑定数据源,例如:
C# code
dgvShow.ItemsSource = null;dgvShow.ItemsSource = e.result; 

热点排行