2011-11-14 65 views
2

填充我創建2商店,一個從數據庫加載數據,並且另一個爲空,用2個網格,我可以可以拖動並從電網1丟棄數據到電網2。 所以商店2將包含數據。 什麼是從c#後面的代碼中檢索商店2中的所有數據的最佳方法。EXT存儲從商店retreaving數據服務器側手動

回答

0

我認爲,不幸的是,你不能從電網或存儲值後面的代碼時使用提交表單或致電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

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(); 
} 
相關問題