2013-09-23 3 views
0

Я пытаюсь загрузить простой GridPanel с магазином, созданным в коде. Я не уверен, что мне не хватает, но когда я добавляю Store в GridPanel, он просто говорит «Загрузка ...» и никогда не загружается.GridPanel Store Не загружается

GridPanel определяется следующим образом:

<ext:GridPanel ID="SearchSoftwareGrid" runat="server" MultiSelect="true" Height="224" 
    Padding="1" Width="398"> 
    <ColumnModel> 
     <Columns> 
      <ext:Column ID="Column4" runat="server" Text="Publisher" Width="45" DataIndex="PUBLISHER" 
       Flex="1" /> 
      <ext:Column ID="Column5" runat="server" Text="Product" Width="175" DataIndex="PRODUCT" /> 
      <ext:Column ID="Column6" runat="server" Text="Version" Width="50" DataIndex="PRODUCT_VERSION" /> 
      <ext:Column ID="Column7" runat="server" Text="Instance Count" Width="85" DataIndex="INSTANCE_COUNT" /> 
     </Columns> 
    </ColumnModel> 
    <View> 
     <ext:GridView ID="GridView2" runat="server"> 
      <Plugins> 
       <ext:GridDragDrop ID="GridDragDrop2" runat="server" DragGroup="secondGridDDGroup" 
        DropGroup="firstGridDDGroup" /> 
      </Plugins> 
      <Listeners> 
       <Refresh Handler="#{SearchSoftwareGrid}.body.unmask(); #{btnSearchSoftware}.enable();" 
        Delay="1" /> 
      </Listeners> 
     </ext:GridView> 
    </View> 
</ext:GridPanel> 

Это метод я использую для создания магазина в коде позади:

private Ext.Net.Store GetSoftwareStore(string search) 
{ 
string proxyUrl = softwareUrl + search; 

Ext.Net.Model softwareStoreModel = new Ext.Net.Model(); 
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("PUBLISHER", ModelFieldType.String)); 
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("PRODUCT", ModelFieldType.String)); 
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("PRODUCT_VERSION", ModelFieldType.String)); 
softwareStoreModel.Fields.Add(new Ext.Net.ModelField("INSTANCE_COUNT", ModelFieldType.String)); 

Ext.Net.Store resultStore = new Ext.Net.Store() 
{ 
    AutoLoad = true, 
    Proxy = 
    { 
     new Ext.Net.AjaxProxy() 
     { 
      Json = true, 
      ActionMethods = { Read = Ext.Net.HttpMethod.POST, Create = Ext.Net.HttpMethod.POST }, 
      Url = proxyUrl, 
      Headers = { 
       new Ext.Net.Parameter("Accept", "application/json"), 
       new Ext.Net.Parameter("Content-Type", "application/json") 
      }, 
      Reader = { new Ext.Net.JsonReader() { Root = "" } }, 
      Writer = { new Ext.Net.JsonWriter() { Root = "", Encode = true } } 
     } 
    } 
}; 
resultStore.Model.Add(softwareStoreModel);   

return resultStore; 
} 

Я пытаюсь добавить магазин, как это, где txtSearchsoftware вводится пользователем и используется для заполнения proxyUrl выше:

SearchSoftwareGrid.Store.Add(GetSoftwareStore(txtSearchsoftware.Text)); 

Прокси-сервер предназначен для веб-службы, которая возвращает некоторый JSON. Пример:

HTTP: // [MachineName]/OperationalControlServices/Service1/данные/ComponentMapping Поиск = db2

Я знаю, что веб-сервис, это прекрасно, потому что возвращает правильно с помощью Fiddler. Спасибо заранее!

ответ

0

попробовать

SearchSoftwareGrid.Store= GetSoftwareStore(txtSearchsoftware.Text); 
Смежные вопросы