EXTJS-grid-store laden - Parameter hinzufügen?

Ich bin in den Prozess der Umwandlung einer asp-repeater in eine EXTJS grid. Oberhalb der repeater ist ein dropdown und eine radiobutton-Liste. Die dropdown wählt der Kunden die Daten der repeater zeigt, und das radiobuttonlist-wählt die Abfrage-Typ (Standard, eine Ressource oder Rolle). Derzeit, wenn in der ddl-oder radiobutton-Komponente geändert wird, wird die Seite postsback mit den neuen Daten.

Ich bin mir nicht sicher, wie Sie Sie übergeben den Wert dieser beiden Objekte in meine statische webservice im backend über das extjs-store-api-GET-Aufruf.

Den extjs-store-code...

store: Ext.create('Ext.data.Store', {
                    autoLoad: true,
                    autoSync: false,
                    model: 'Assembly',
                    proxy: {
                        type: 'ajax',
                        headers: { "Content-Type": 'application/json' },
                        api: {
                            read: '/Admin/BillRateData.aspx/Get'
                        },
                        reader: {
                            type: 'json',
                            root: function (o) {
                                if (o.d) {
                                    return o.d;
                                } else {
                                    return o.children;
                                }
                            }
                        },
                        writer: {
                            type: 'json',
                            root: 'jsonData',
                            encode: false,
                            allowSingle: false
                        },
                        listeners: {
                            exception: function (proxy, response, operation) {
                                Ext.MessageBox.show({
                                    title: "Workflow Groups Error",
                                    msg: operation.action + ' Operation Failed: ' + operation.getError().statusText,
                                    icon: Ext.MessageBox.ERROR,
                                    buttons: Ext.Msg.OK
                                });
                            }
                        }
                    }

- Und der webservice - ...(mit einigen psuedocode)

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
    public static List<BillRate> Get()
    {
        using (TimEntities db = new TimEntities())
        {
            int tableId = Int32.Parse(ddlTable.SelectedValue);

            var defaultQry = from t1 in db.BillCostTableDatas
                             where t1.TableId == tableId
                             && t1.ResourceId == 0 && t1.RoleId == 0
                             orderby t1.Rate
                             select new
                             {
                                 id = t1.Id,
                                 resource = "",
                                 role = "",
                                 rate = t1.Rate,
                                 TierName = ""
                             };

            var resourceQry = from t1 in db.BillCostTableDatas
                              join t2 in db.Machines on t1.ResourceId equals t2.Machine_ID
                              join t3 in db.TOMIS_USER on t2.Machine_User_ID equals t3.User_ID
                              join t4 in db.PricingTierNames on t1.PricingTierID equals t4.TierID
                              where t1.TableId == tableId
                                && t1.ResourceId != 0
                                && t1.RoleId == 0
                              orderby t3.LName, t3.FName, t1.Rate, t4.TierName
                              select new
                              {
                                  id = t1.Id,
                                  resource = t3.LName + ", " + t3.FName,
                                  role = "",
                                  rate = t1.Rate,
                                  TierName = t4.TierName
                              };

            var roleQry = from t1 in db.BillCostTableDatas
                          join t2 in db.TaskRoles on t1.RoleId equals t2.Id
                          where t1.TableId == tableId
                          && t1.ResourceId == 2 && t1.RoleId != 0
                          orderby t2.Name, t1.Rate
                          select new
                          {
                              id = t1.Id,
                              resource = "",
                              role = t2.Name,
                              rate = t1.Rate,
                              TierName = ""
                          };

            if (this.rblOptions.SelectedValue == "resource")
            {
                var results = from Res in resourceQry.ToList()
                              select new BillRate
                              {

                              };
                return results.ToList();
            }
            else if (this.rblOptions.SelectedValue == "role")
            {
                var results = from Res in roleQry.ToList()
                              select new BillRate
                              {

                              };
                return results.ToList();
            }
            else
            {
                var results = from Res in defaultQry.ToList()
                              select new BillRate
                              {

                              };
                return results.ToList();
            }

            return null;
        }
    }
Ich bin mir nicht sicher, ob ich das bekommen, was Sie gefragt haben. Wie zum senden der Parameter an den server mithilfe der Extern speichern?
Das raster gefüllt wird, mit der js "Lesen: '/Admin/BillRateData.aspx/Bekommen'", die fordert, das webmethod-ich eingefügt. Was ich versuche, herauszufinden, ist das hinzufügen von Parametern zu der GET-Aufruf mit Werten für die dropdown-und radiobutton-Liste, so dass Sie das webmethod-können wissen, wie Sie die Abfrage zu verwenden.

InformationsquelleAutor NikZ | 2013-06-12

Schreibe einen Kommentar