【问题标题】:GridPanel Store Not LoadingGridPanel 存储未加载
【发布时间】:2013-09-28 19:03:06
【问题描述】:

我正在尝试加载一个简单的 GridPanel,并在后面的代码中创建了一个 Store。我不确定我错过了什么,但是当我将 Store 添加到 GridPanel 时,它只会显示“正在加载...”并且永远不会加载。

GridPanel 定义如下:

<ext:GridPanel ID="SearchSoftwareGrid" runat="server" MultiSelect="true" Height="224"
    Padding="1" Width="398">
    <ColumnModel>
        <Columns>
            <ext:Column ID="Column4" runat="server" Text="Publisher" Width="45" DataIndex="PUBLISHER"
                Flex="1" />
            <ext:Column ID="Column5" runat="server" Text="Product" Width="175" DataIndex="PRODUCT" />
            <ext:Column ID="Column6" runat="server" Text="Version" Width="50" DataIndex="PRODUCT_VERSION" />
            <ext:Column ID="Column7" runat="server" Text="Instance Count" Width="85" DataIndex="INSTANCE_COUNT" />
        </Columns>
    </ColumnModel>
    <View>
        <ext:GridView ID="GridView2" runat="server">
            <Plugins>
                <ext:GridDragDrop ID="GridDragDrop2" runat="server" DragGroup="secondGridDDGroup"
                    DropGroup="firstGridDDGroup" />
            </Plugins>
            <Listeners>
                <Refresh Handler="#{SearchSoftwareGrid}.body.unmask(); #{btnSearchSoftware}.enable();"
                    Delay="1" />
            </Listeners>
        </ext:GridView>
    </View>
</ext:GridPanel>

这是我在后面的代码中创建 Store 的方法:

private Ext.Net.Store GetSoftwareStore(string search)
{
string proxyUrl = softwareUrl + search;

Ext.Net.Model softwareStoreModel = new Ext.Net.Model();
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("PUBLISHER", ModelFieldType.String));
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("PRODUCT", ModelFieldType.String));
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("PRODUCT_VERSION", ModelFieldType.String));
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("INSTANCE_COUNT", ModelFieldType.String)); 

Ext.Net.Store resultStore = new Ext.Net.Store()
{
    AutoLoad = true,
    Proxy =
    {
        new Ext.Net.AjaxProxy()
        {
            Json = true,
            ActionMethods = { Read = Ext.Net.HttpMethod.POST, Create = Ext.Net.HttpMethod.POST },
            Url = proxyUrl,
            Headers = {
                new Ext.Net.Parameter("Accept", "application/json"),
                new Ext.Net.Parameter("Content-Type", "application/json")
            },
            Reader = { new Ext.Net.JsonReader() { Root = "" } },
            Writer = { new Ext.Net.JsonWriter() { Root = "", Encode = true } }
        }
    }
};
resultStore.Model.Add(softwareStoreModel);        

return resultStore;
}

我尝试像这样添加商店,其中txtSearchsoftware 由用户输入并用于填充上面的proxyUrl

SearchSoftwareGrid.Store.Add(GetSoftwareStore(txtSearchsoftware.Text));

proxyUrl 用于返回一些 JSON 的 Web 服务。示例:

http://[MachineName]/OperationalControlServices/Service1/data/ComponentMapping?Search=db2

我知道 Web 服务很好,因为它使用 Fiddler 正确返回。 提前致谢!

【问题讨论】:

    标签: json web-services extjs store ext.net


    【解决方案1】:

    试试

    SearchSoftwareGrid.Store= GetSoftwareStore(txtSearchsoftware.Text);
    

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2014-10-20
      • 2011-11-23
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多