【问题标题】:Kendo Grid, not populating Data from a Database properly, when using IE8使用 IE8 时,Kendo Grid 无法正确从数据库中填充数据
【发布时间】:2013-03-28 15:08:44
【问题描述】:

我一直在尝试让剑道网格正确填充到 IE8 中(使用该程序的人被困在 Windows XP 上)。它在 IE9、Firefox 和 Chrome 中运行良好。

这是我正在使用的代码。

我的 cshtml 文件

<!DOCTYPE html>

@model IEnumerable<SymPro.ViewModels.InvestViewModel>

@{
    ViewBag.Title = "List Accounts";
}

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<font size ="1">
@(Html.Kendo().Grid<SymPro.ViewModels.InvestViewModel>()
                                    .Name("gridInvest")
                                    .Columns(columns =>
                                    {
                                        columns.Bound(p => p.asset_num).Title("Invest. <br/> No.");
                                        columns.Bound(p => p.cusipnum).Title("Security <br/> ID").Width(80);
                                        columns.Bound(p => p.rempar).Title("Remaining <br/> Par").Format("{0:0.00}").Width(100);
                                        columns.Bound(p => p.issuer).Title("Issuer");
                                        columns.Bound(p => p.purdate).Title("Purchased").Width(100);
                                        columns.Bound(p => p.maturdate).Title("Mature/Sell").Width(100);
                                        columns.Bound(p => p.invtype).Title("Type");
                                        columns.Bound(p => p.fund_num).Title("Fund");
                                        columns.Bound(p => p.nomrate).Title("Rate").Format("{0:0.00}");
                                        columns.Bound(p => p.facevalue).Title("Par <br/> Value").Format("{0:0.00}");
                                        columns.Bound(p => p.groupcd).Title("Group");
                                        columns.Bound(p => p.sectorcd).Title("Sector");
                                        columns.Bound(p => p.identity_column).Title("")
                                            .ClientTemplate(@Html.ActionLink("Details", "Details", new { id = "#= identity_column#" }, new { style = "color:blue" })
                                            .ToHtmlString()
                                            );
                                        columns.Bound(p => p.identity_column).Title("")
                                            .ClientTemplate(@Html.ActionLink("Edit", "Edit", new { id = "#= identity_column#" }, new { style = "color:blue" })
                                            .ToHtmlString()
                                            );
                                        columns.Bound(p => p.identity_column).Title("")
                                            .ClientTemplate(@Html.ActionLink("Delete", "Delete", new { id = "#= identity_column#" }, new { style = "color:blue" })
                                            .ToHtmlString()
                                            );
                                    })                                    
                                    .DataSource(dataSource => dataSource
                                        .Ajax()
                                        .Read(read => read.Action("Invest_Read", "Invest"))                                        
                                    )
                                    .Sortable()
                                    .Scrollable(scr=>scr.Height(450))                   

                                )
    </font>

我的 Invest_Read 操作结果

public ActionResult Invest_Read([DataSourceRequest]DataSourceRequest request)
        {
            decimal initzero = 0000000000000.00M;
            string initcode = "";
            string DefPublCd = "";

            var dbAgencyQuery = (from d in db.dbagency
                                 select d).FirstOrDefault();

            if (dbAgencyQuery != null)
            {
                DefPublCd = dbAgencyQuery.defpublcd;
            }

            DateTime general = new DateTime(1900, 1, 1);
            DateTime? empty = null;

            var accounts = (from i in db.invest
                            join s in db.dbsumcalcs on i.asset_num equals s.asset_num into i_s
                            from subi_s in i_s.DefaultIfEmpty()
                            join f in db.fisectasgn on i.ficspkey equals f.cspkey into i_f
                            from subi_f in i_f.DefaultIfEmpty()
                            join e in db.sector on subi_f.syseckey equals e.syseckey into f_e
                            from subf_e in f_e.DefaultIfEmpty()
                            where subf_e.publcd == DefPublCd
                            orderby i.maturdate
                            select new InvestViewModel
                            {
                                asset_num = i.asset_num,
                                cusipnum = i.cusipnum,
                                rempar = (subi_s == null ? initzero : subi_s.rempar),
                                issuer = i.issuer,
                                purdate = (i.maturdate == general || i.maturdate == DateTime.MinValue ? empty : i.purdate),
                                maturdate = (i.maturdate == general || i.maturdate == DateTime.MinValue ? empty : i.maturdate),
                                invtype = i.invtype,
                                fund_num = i.fund_num,
                                nomrate = i.nomrate,
                                facevalue = i.facevalue,
                                creditcode = (subi_s == null ? initcode : subi_s.creditcode),
                                credrte2 = (subi_s == null ? initcode : subi_s.credrte2),
                                groupcd = (subf_e == null ? initcode : subf_e.groupcd),
                                sectorcd = (subf_e == null ? initcode : subf_e.sectorcd),
                                identity_column = i.identity_column
                            });

            DataSourceResult result = accounts.ToDataSourceResult(request);

            return Json(result, JsonRequestBehavior.AllowGet);
        }

【问题讨论】:

  • 你不需要一些 等标签吗?我不知道这是否有助于解决您的问题,但它会让我感觉更快乐。

标签: razor asp.net-mvc-4 internet-explorer-8 kendo-ui kendo-grid


【解决方案1】:

确保您已按照documentation 中的说明将 kendo.aspnetmvc.js 文件添加到您的布局页面。 troubleshooting 也可能会派上用场。

【讨论】:

  • 该文件位于我的 _layout 文件中。
【解决方案2】:

请检查使用浏览器开发工具生成的 html。我认为 IE8 不支持 html5 并且剑道网格可能正在使用自定义属性,例如 data-xxxx。

【讨论】:

  • 我知道它正在工作,因为我正在使用 Kendo 网格和应用程序上的其他页面,并且这些页面按预期工作。
【解决方案3】:

我发现了我的问题。在我的视图模型 InvestViewModel 中,我有一个名为 @class 的变量,它在程序的其他地方被使用,但是当它被传递到网格时,它在 Kendo 中导致了一个问题,即使它是 Null。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多