找回密码
 立即注册

QQ登录

只需一步,快速开始

chin
注册会员   /  发表于:2018-9-14 15:22  /   查看:4641  /  回复:5
开发平台:asp.net core2.1
请教一下flexgrid的sourceCollection绑定返回的json数据后,按下header的时候,绑定的数据又消失了,通过调试发现按下header的时候它又重新跑了一遍一下的代码,public ActionResult Index()  {
            return View();
   }

要怎么设定才能让绑定的数据不消失进行正常排序呢?

<script type="text/javascript">
    function parseDate(strDate) {
        var date = strDate.match(/\d+/g);
        return new Date(parseInt(date));
    }

    function btn1_click() {
        $.ajax({
            type: "POST",
            url: "/Home/GetData",
                        dataType: "json",

                        data: { count: 10 },
            success: function (result) {               
                var flex = wijmo.Control.getControl("#gFlexGrid"),
                    cv = flex.collectionView;
                //flex.itemsSource = result;
                try {
                    cv._isFillingData = true;
                    cv.deferUpdate(function () {
                        cv.sourceCollection.clear();
                        result.forEach(function (item) {
                            item.Start = parseDate(item.Start);
                            item.End = parseDate(item.End);
                            cv.sourceCollection.push(item);
                        });
                    })
                } finally {
                    cv._isFillingData = false;
                }
            },
            error: function (err) {

            }
        });
    }

    function btn_save_click() {
        var flex = wijmo.Control.getControl("#gFlexGrid"),
        cv = flex.collectionView;
        cv.commit();
    }
</script>

<div>
    <div>
        <input type="button" id="btn1" value="Get Data" />
        <input type="button" id="btn_save" value="Save Data" />
    </div>
    <h4>FlexGrid - Image in Cells</h4>
    @(Html.C1().FlexGrid()
                    .Id("gFlexGrid")
                    .AutoGenerateColumns(false)
                    .IsReadOnly(true)
                    .AutoClipboard(true)
                    .AllowSorting(true)
                                .AllowAddNew(false)
                                .SelectionMode(C1.Web.Mvc.Grid.SelectionMode.Row)
                    .Height(500)
                    .CssClass("grid")
                    .Columns(bl =>
                    {
                        bl.Add(cb => cb.Binding("ID").Width("0.4*"));
                        bl.Add(cb => cb.Binding("Country").Header("Country").Width("*").Name("Country"));
                        bl.Add(cb => cb.Binding("Amount").Header("Amount").Width("*").Name("Amount"));
                        bl.Add(cb => cb.Binding("Product").Header("Product").Width("*").Name("Product"));
                    })
    )
</div>


[HttpPost]
        public JsonResult GetData(int count)
        {
            List<Sale> saleList = Sale.GetData(count).ToList<Sale>();
            return Json(saleList);
        }

5 个回复

倒序浏览
JeffryLI
葡萄城公司职员   /  发表于:2018-9-17 12:06:20
沙发
您好点击header的时候是否出发排序事件,还有您的绑定模式是否在清空数据源的时候有原始数据绑定有影响。希望能帮到您。
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
chin
注册会员   /  发表于:2018-9-18 10:00:44
板凳
谢谢你的回复,上面贴出的是该现象代码,首先从代码上看AllowSorting设定为了true,所以排序事件应该是有触发的,其次按下btn1的时候绑定返回的json数据,这样不算绑定了原始数据吗?
百忙之中麻烦版主帮我看一下上面贴的代码哪里设定错或有其他更好的绑定方法请指教。
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-9-18 12:08:47
地板
您好,为什么不用这个 flex.itemsSource = result;sourceCollection不是flexgrid的数据源,希望能帮到您
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
chin
注册会员   /  发表于:2018-9-18 15:09:09
5#
谢谢你的回答,用flex.itemsSource = result解决问题了
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-9-18 15:34:42
6#
不客气的
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部