【问题标题】:Filling data in Ext.net FormPanel在 Ext.net FormPanel 中填充数据
【发布时间】:2012-11-26 19:57:09
【问题描述】:

我正在使用 Ext.net 2.0,并尝试在表单面板中加载商店的第一条记录。我总是在商店里没有记录 (getCount() = 0) 吗?我错过了什么吗?

 @(Html.X().Store()
              .ID("myStore")
              .AutoSync(true)
              .AutoDataBind(true)
              .Proxy(proxy =>
                     proxy.Add(
                         Html.X().AjaxProxy().API(api =>
                                   {
                                       api.Create = "/Property/Save/";
                                       api.Read   = "/Property/GetById/";
                                   })                   
                             .Reader(reader => reader.Add(Html.X().JsonReader().Root("data").IDProperty("P_ID")))
                             .Writer(writer => writer.Add(Html.X().JsonWriter().AllowSingle(true)))
                     ))
               .Listeners(c =>
                              {
                                  c.DataChanged.Handler ="var store = Ext.getStore('myStore');" +
                                                          "alert(store.getCount());";



                              })

              .AutoLoadParams(parameters =>
                                   {
                                       parameters.Add(Html.X().Parameter().Name("id").Value("document.location.href.split('/')[5]").Mode(ParameterMode.Raw));
                                   })

              .Model(model => model.Add(
                  Html.X().Model()
                      .Fields(fields =>
                                  {

                                      fields.Add(Html.X().ModelField().Name("ID").Type(ModelFieldType.Int));
                                      fields.Add(Html.X().ModelField().Name("DispalyName").Type(ModelFieldType.String));
                                      fields.Add(Html.X().ModelField().Name("Title").Type(ModelFieldType.String));
                                      fields.Add(Html.X().ModelField().Name("ShortDescription").Type(ModelFieldType.String));


                                  })
                          ))
                    )

对于表单面板

@(
        Html.X().FormPanel()
        .ID("myPanel")
        .Layout(LayoutType.Form)
        .Width(350)
        .FieldDefaults(d => {
            d.LabelWidth = 150;
        })
        .BodyPadding(10)
        .Items(item =>
                    {
                        item.Add(Html.X().TextField().ID("Id").Name("ID").FieldLabel("Id").Hidden(true));
                        item.Add(Html.X().TextField().ID("DispalyName").Name("IdDispalyName").FieldLabel("Id Dispaly Name").MaxLength(400));
                        item.Add(Html.X().TextField().ID("Title").Name("Title").FieldLabel("Title").AllowBlank(false).MaxLength(200));
                        item.Add(Html.X().TextField().ID("ShortDescription").Name("ShortDescription").FieldLabel("Short Description").MaxLength(200));
                             }
            ) )  

提前致谢。

【问题讨论】:

    标签: model-view-controller extjs store ext.net formpanel


    【解决方案1】:

    更合适的事件是 Load(当数据从远程源加载到存储时触发)

    请看下面的描述 http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Store-event-datachanged

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-13
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      相关资源
      最近更新 更多