2

我创建了 2 个存储,一个从数据库加载数据,另一个是空的,有 2 个网格,我可以将数据从网格 1 拖放到网格 2。所以存储 2 将包含数据。从 c# 后面的代码中检索存储 2 中所有数据的最佳方法是什么。

4

3 回答 3

1

我认为以下 Ext.NET 示例可以提供帮助。该示例演示了在两个 GridPanel/Store 组件之间移动数据,然后提交第二个 GridPanel/Store 的结果。

请参阅http://examples.ext.net/#/GridPanel/Miscellaneous/Two_Grids/

于 2011-11-15T16:00:32.823 回答
0

我认为,不幸的是,当使用提交表单或调用 DurectEvent 时,您无法从 Grid 或 Store 获取值背后的代码。该数据未提交。原因是为了缩小请求,因为如果您的表单在一段时间内包含许多商店,他们将提交太多无用的数据。也许解决方案存在,但我不知道。

当然,如果你想要这个例子中的一些逻辑,你可以使用它http://examples.ext.net/#/GridPanel/WebService_Connections/StoreEvents/。但在大多数情况下,您需要更简单的解决方案。只需将存储中的记录 id 存储在一个将发送到服务器的字符串中。例子:

function getStoreValues(store) {
    var a = [];
    store.each(function (r) { a.push(r.id); })
    return a.join(',')
}

您可以在此处找到完整示例:http: //pastebin.com/pgSfgPt3

于 2011-11-15T15:54:41.327 回答
0

在您的客户端

<ext:Button ID="SaveButton" runat="server" Text="Save" Disabled="true">
<DirectEvents>
    <Click OnEvent="Save">
        <ExtraParams>
            <ext:Parameter 
                Name="items" 
                Value="#{MultiSelect1}.getValues(true)" 
                Mode="Raw"
                Encode="true" />
        </ExtraParams>
    </Click>
</DirectEvents>
</ext:Button>

在您的服务器端

protected void Save(object sender, DirectEventArgs e) {
var items = e.ExtraParams["items"];
var selectedCountries = JSON.Deserialize<ListItem[]>(items);

//you deserializa all your data in ListItem, since I use a multi select. With GridPanels, you have to use the object.
return selectedCountries.Select(item => Convert.ToInt64(item.Value)).ToList();
}
于 2013-02-14T14:10:09.367 回答