我创建了2个商店,一个从数据库加载数据,另一个是空的,有2个网格,我可以将数据从网格1拖放到网格2。 所以商店2将包含数据。 从c#后面的代码中检索商店2中的所有数据的最佳方法是什么。
答案 0 :(得分:1)
我认为以下Ext.NET示例可以提供帮助。该示例演示了在两个GridPanel / Store组件之间移动数据,然后提交第二个GridPanel / Store的结果。
请参阅http://examples.ext.net/#/GridPanel/Miscellaneous/Two_Grids/
答案 1 :(得分: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
答案 2 :(得分: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();
}