ext store извлекает данные на стороне сервера из хранилища, заполненного вручную

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


person hassan sleh    schedule 14.11.2011    source источник


Ответы (3)


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

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

person geoffrey.mcgill    schedule 15.11.2011

Я думаю, к сожалению, вы не можете получить код за значениями из сетки или хранилища при использовании формы отправки или вызове 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

person Baidaly    schedule 15.11.2011

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

<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();
}
person Nahuel Santos    schedule 14.02.2013