如何将数据从 MSSQL 添加到 Ext.Net 7.2.0 经典

How to add data from MSSQL to Ext.Net 7.2.0 classic

我是 .Net 的新手。我有使用 ExtJs 的经验,但这是我第一次使用 Ext.Net 创建 webtool,我有一个小问题,我不知道如何修复它。 我有一个 webtool,它有一个 TreeGrid,其中数据是从 MSSQL 获取并正确填充的。单击该树状网格中的一个子项后,将显示一个带有一些选项卡的表单面板。在这些选项卡上,它将是一些带有网格面板的文本字段。我的问题是我无法为 GridPanel 提供数据。我不明白我做错了什么。 我正在使用 Ext.Net v7.2.0 Classic。

我将在下面列出一些代码,看看我在说什么。

这是 GridPanel 视图:

                            <ext-container layout="HBox">
                                <defaults>
                                    <ext-add key="header" value="false" mode="Raw" />
                                    <ext-add key="frame" value="true" mode="Raw" />
                                    <ext-add key="width" value="100" mode="Raw" />
                                </defaults>
                                <items>


                                    <!-- Configure a GridPanel and reference the Store above -->
                                    <ext-gridPanel 
                                                    title="Grouped Header"
                                                   width="800"
                                                   height="300"
                                                   frame="true">
                                        <!-- Configure a Store -->
                                        <store>
                                            <ext-store id="Store1" data="Model.GridPanel" autoLoad="true">
                                                        <fields>
                                                            <ext-integerDataField name="CommentId"/>
                                                            <ext-integerDataField name="CompensationPeriodKey"/>
                                                            <ext-stringDataField name="Title" />
                                                            <ext-stringDataField name="Comment" />
                                                            <ext-booleanDataField name="Print" />
                                                        </fields>
                                            </ext-store>
                                        </store>
                                        <columns>
                                            <ext-column text="#" dataIndex="CommentId"  />
                                            <ext-column text="Print" dataIndex="Print" />
                                            <ext-column text="Title" dataIndex="Title" />
                                            <ext-column text="Comment" dataIndex="Comment" flex='1' />
                                        </columns>
                                        <bbar>
                                            <ext-toolbar>
                                                <items>
                                                    <ext-button text="Print" iconCls="x-md md-icon-print" handler="this.up('grid').print();" />
                                                </items>
                                            </ext-toolbar>
                                        </bbar>
                                    </ext-gridPanel>
                                </items>
                            </ext-container>

这是控制器:

namespace MyApp.Controllers
{
    public class Controller: Controller
    {
        public IActionResult Index(int compPeriod)
        {
            // load entity for selected key
            TREEGRID entity = null;
            using (var context = new MyDbContext())
            {
                entity = context.TREEGRID.Include(per => per.GridPanel).FirstOrDefault(per => per.DataPeriodKey == compPeriod);
            }
            return View("Index", entity);
        }
    }
}

我的 return 是:

My problem is that i can't bring the data for GridPanel. I dont understand what i'm doing wrong. I'm using the Ext.Net v7.2.0 Classic.

我使用您与一些测试数据共享的代码进行了测试,这对我来说效果很好。

var model = new MyGridViewModel
{
    GridPanel = new List<object>
    {
        new object[] { 1, 1, "Title 1", "Hello", true },
        new object[] { 2, 2, "Title 2", "Hello World", false }
    }
};

return View("Index", model); 

输出

要解决此问题,请调试您的代码并检查您从数据库中检索到的 entity 中的实际数据是否与上述测试数据相似。

entity = context.TREEGRID.Include(per => per.GridPanel).FirstOrDefault(per => per.DataPeriodKey == compPeriod);