Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 淘汰KoGrid-未显示任何数据_Javascript_Knockout.js_Kogrid - Fatal编程技术网

Javascript 淘汰KoGrid-未显示任何数据

Javascript 淘汰KoGrid-未显示任何数据,javascript,knockout.js,kogrid,Javascript,Knockout.js,Kogrid,我有一个ASP.NETMVC5应用程序,我在其中添加了几个使用优秀的KnockoutJs KoGrid()的视图。我的问题是我创建了第三个使用KoGrid的视图,尽管遵循了其他视图上使用的模式,但我无法说服KoGrid显示数据。我已在此处为问题创建了plnkr: “real”视图有两个选项卡,第一个选项卡显示数据库详细信息,第二个选项卡应在ko网格中显示工作流规则。以下是我从控制器返回的视图模型: public class AdminViewModel { public Database

我有一个ASP.NETMVC5应用程序,我在其中添加了几个使用优秀的KnockoutJs KoGrid()的视图。我的问题是我创建了第三个使用KoGrid的视图,尽管遵循了其他视图上使用的模式,但我无法说服KoGrid显示数据。我已在此处为问题创建了plnkr:

“real”视图有两个选项卡,第一个选项卡显示数据库详细信息,第二个选项卡应在ko网格中显示工作流规则。以下是我从控制器返回的视图模型:

public class AdminViewModel
{
    public DatabaseDetails DatabaseDetails { get; set; }
    public List<WorkflowRule> WorkflowRules { get; set; }
}

public class WorkflowRule 
{
    public int WorkflowRuleId { get; set; }
    public string ReceivePortName { get; set; }
    public string MessageType { get; set; }
    public string TriggerSource { get; set; }
    public string TargetEmailAddress { get; set; }
    public int AssignedToId { get; set; }
    public string AssignedToName { get; set; }
}

public class DatabaseDetails
{...
})

我的主要观点如下:

    @model TVS.ESB.BamPortal.Website.Models.AdminViewModel
@using System.Web.Script.Serialization
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@{  string data = new JavaScriptSerializer().Serialize(Model); }

<div class="tab-pane" id="WorkflowRules">
                <h4>Workflow Rules</h4>
                <div id="KoGrid" data-bind="koGrid: gridOptions"></div>
            </div>

@section Scripts {
    <script src="~/KnockoutVM/WorkflowRules.js"></script>
    <link rel="stylesheet" type="text/css" href="~/Content/KoGrid.css">
    <script type="text/javascript">
        var vm = new ViewModel(@Html.Raw(data));
        ko.applyBindings(vm, document.getElementById("KoGrid"));
    </script>
}
@model TVS.ESB.BamPortal.Website.Models.AdminViewModel
@使用System.Web.Script.Serialization
@{
ViewBag.Title=“Index”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}
@{string data=new JavaScriptSerializer().Serialize(Model);}
工作流规则
@节脚本{
var vm=newviewmodel(@Html.Raw(data));
applyBindings(vm,document.getElementById(“KoGrid”);
}
以下是Chrome如何显示视图的屏幕抓图:

谁能告诉我哪里出了问题-为什么网格中没有显示数据


我刚刚意识到,如果我缩小显示kogrid的浏览器的大小,那么数据就会出现。我在这里制作了一个简短的视频:

我可以通过将“工作流规则”选项卡设置为默认值来解决这个CSS问题


后来,在另一个网站上,我发现如果控制器只返回一行数据,就会出现同样的行为。如果返回了两行或多行,则它们会正确显示。

我在plnkr示例中添加了一些缺少的资源:您能解释一下使用此示例的错误吗?添加了脚本的plnk效果很好,但我的解决方案中已经添加了这些脚本,但我没有显示KoGrid。事实上,我确实看到了下拉箭头-请看我添加到问题中的屏幕抓图Chrome的开发者工具控制台是否记录了任何错误?恐怕没有错误。我可以看到网格中的数据也可以通过Chrome来显示。我刚刚注意到,如果我缩小显示网格的浏览器窗口的大小,那么网格数据就会出现。我在这里做了一个简短的视频:
    @model TVS.ESB.BamPortal.Website.Models.AdminViewModel
@using System.Web.Script.Serialization
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@{  string data = new JavaScriptSerializer().Serialize(Model); }

<div class="tab-pane" id="WorkflowRules">
                <h4>Workflow Rules</h4>
                <div id="KoGrid" data-bind="koGrid: gridOptions"></div>
            </div>

@section Scripts {
    <script src="~/KnockoutVM/WorkflowRules.js"></script>
    <link rel="stylesheet" type="text/css" href="~/Content/KoGrid.css">
    <script type="text/javascript">
        var vm = new ViewModel(@Html.Raw(data));
        ko.applyBindings(vm, document.getElementById("KoGrid"));
    </script>
}