找回密码
 立即注册

QQ登录

只需一步,快速开始

yuye

初级会员

5

主题

12

帖子

407

积分

初级会员

积分
407

活字格认证

yuye
初级会员   /  发表于:2014-12-10 16:24  /   查看:5307  /  回复:1
关键代码如下:      
#region 获取当前选中的集合 + public static void GetSelectedIndex(YPTrueDbGrid trueDbGrid, ModleTreeModel model)
        public static void GetSelectedIndex(YPTrueDbGrid trueDbGrid, ModleTreeModel model)
        {
            if (trueDbGrid == null || model.Orders == null)
                return;
            else if (trueDbGrid.SelectedRows.Count <= 0)
                return;

            model.Orders.Clear();
            model.Rows.Clear();

            foreach (int i in trueDbGrid.SelectedRows)//遍历SelectedRows属性获取客户选中行
            {
                //如果不存在系统指定列则抛异常                       
                if (trueDbGrid.GetCellValue(i, DataListColConfig.SprCol_Code).YPFilterDbNull().YPIsNullOrEmpty() || trueDbGrid.GetCellValue(i, DataListColConfig.SprCol_Status).YPFilterDbNull().YPIsNullOrEmpty())
                {
                    throw new Exception("code或status为空");
                }

                int status = trueDbGrid[i, DataListColConfig.SprCol_Status].YPFilterDbNull().YPToInt();

                model.Orders.Add(new OrderModel(trueDbGrid[i, DataListColConfig.SprCol_Code].YPFilterDbNull(), GlobalVar.Dic_OrderOprStatus[status]));
                DataRowView row = trueDbGrid as DataRowView;
                model.Rows.Add(row);
            }
        }
        #endregion 获取当前选中的集合



/////调用代码,在RowColChange事件中获取选中行好像经常获取的不对
        private void TrueDbGridHeader_RowColChange(object sender, C1.Win.C1TrueDBGrid.RowColChangeEventArgs e)
        {
            DataListExBll.GetSelectedIndex(this.TrueDbGridHeader, Model);
            LoadDetailData();
        }

        private void LoadDetailData()
        {
            FilterModel filter = new FilterModel();

            if (Model.Orders.Count > 0)
            {
                filter.sqlwhere.Append(" AND CODE='" + Model.Orders[0].Code + "'");
            }
            if ((TrueDbGridHeader.DataSource as DataTable).Rows.Count <= 0)
            {
                filter.sqlwhere.Append(" AND 1=2");
            }
            DataListExBll.LoadData(Model, TrueDbGridDetail, filter, "View_" + Model.ywtype + "dtl", true);
        }

1 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-12-10 21:29:00
沙发
回复 1楼yuye的帖子

看了你的代码,第一段代码获取当前的选择行,第二段代码调用了第一段代码的方法。

有关C1TrueDBGrid的RowColChange事件的触发场景以及相关使用方法,可以参考文档:
http://helpcentral.componentone. ... wcolchangeevent.htm

如果对照文档,依然有问题,可以将Demo发上来,我帮你看看问题具体出在哪里。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部