ext хранить на стороне сервера данных восстановление из хранилища, заполненного вручную - PullRequest
2 голосов
/ 14 ноября 2011

Я создал 2 магазина, один, который загружает данные из базы данных, а другой - пустой, с 2 сетками, я могу перетаскивать данные из сетки 1 в сетку 2., так что хранилище 2 будет содержать данные.Каков наилучший способ извлечь все данные, которые находятся в хранилище 2 из кода за C #.

Ответы [ 3 ]

1 голос
/ 15 ноября 2011

Я думаю, что следующий пример Ext.NET может помочь. Образец демонстрирует перемещение данных между двумя компонентами GridPanel / Store, а затем отправку результатов второго GridPanel / Store.

См. http://examples.ext.net/#/GridPanel/Miscellaneous/Two_Grids/

0 голосов
/ 14 февраля 2013

На стороне клиента

<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();
}
0 голосов
/ 15 ноября 2011

Я думаю, к сожалению, вы не можете получить в коде значения из Grid или Store, когда используете форму отправки или вызов DurectEvent.Эти данные не представлены.Причина в том, чтобы минимизировать запрос, потому что если ваша форма будет содержать много магазинов, то через некоторое время они будут отправлять слишком много ненужных данных.Может быть, решение существует, но я этого не знаю.

Конечно, если вам нужна логика, как в этом примере, вы можете использовать ее http://examples.ext.net/#/GridPanel/WebService_Connections/StoreEvents/. Но в большинстве ситуаций вам нужно более простое решение.Просто получение идентификаторов записей в хранилище в одну строку, которая будет отправлена ​​на сервер.Пример:

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

Полный пример вы найдете здесь: http://pastebin.com/pgSfgPt3

...