Wie implementieren Sie mehrere suchen in jqGrid

Habe ich ein jqGrid, die ich mit asp.Net Web-Formulare , es zeigt die erforderlichen Informationen ordnungsgemäß von der Datenbank , jedoch zeigt es die such-option als gut, aber wenn ich versuche, Sie zu suchen, sagen wir, den Ersten Namen, der Gleich Lijo , es nur nicht zeigen, bis Sie diesen Datensatz.Der Datensatz vorhanden ist.Ich weiß, ich bin fehlen einige Sachen, benötigt für die Suche sicherlich , hier ist der code

<script type="text/javascript">
    $(function() {
        $("#UsersGrid").jqGrid({
            url: 'ModCust.ashx',
            datatype: 'json',
            height: 250,
            width: 800,
            colNames: ['Application No', 'First Name', 'Middle Name', 'Last Name'],
            colModel: [
                        { name: 'cApplicationNo', index: 'cApplicationNo', width: 100, sortable: true},
                        { name: 'cFirstName', width: 100, sortable: true},
                        { name: 'cMiddleName', width: 100, sortable: true },
                        { name: 'cLastName', width: 100, sortable: true },

                    ],

            cmTemplate: { title: false},
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: '#UsersGridPager',
            sortname: 'cApplicationNo',
            viewrecords: true,
            sortorder: 'asc',
            caption: 'Customer Details'
        });

        $("#UsersGrid").jqGrid('navGrid', '#UsersGridPager', { edit: false, add: false, del: false });
    });

    </script>

Hier ist mein ModCust.ashx-handler

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Script.Serialization;

namespace CwizBankApp
{
    public struct JQGridResults
    {
        public int page;
        public int total;
        public int records;
        public JQGridRow[] rows;
    }
    public struct JQGridRow
    {
        public string id;
        public string[] cell;
    }
    [Serializable]
    public class User
    {
        public string ApplicationNo { get; set; }
        public string FirstName { get; set; }
        public string MiddleName { get; set; }
        public string LastName { get; set; }
    }
    ///<summary>
    ///Summary description for $codebehindclassname$
    ///</summary>

    public class ModCust : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            HttpRequest request = context.Request;
            HttpResponse response = context.Response;

            string _search = request["_search"];
            string numberOfRows = request["rows"];
            string pageIndex = request["page"];
            string sortColumnName = request["sidx"];
            string sortOrderBy = request["sord"];


            int totalRecords;
            //Collection<User> users = GetDummyUsers(numberOfRows, pageIndex, sortColumnName, sortOrderBy, out totalRecords);
            Collection<User> users = GetUsers(numberOfRows, pageIndex, sortColumnName, sortOrderBy, out totalRecords);
            string output = BuildJQGridResults(users, Convert.ToInt32(numberOfRows), Convert.ToInt32(pageIndex), Convert.ToInt32(totalRecords));
            response.Write(output);
        }
        private string BuildJQGridResults(Collection<User> users, int numberOfRows, int pageIndex, int totalRecords)
        {

            JQGridResults result = new JQGridResults();
            List<JQGridRow> rows = new List<JQGridRow>();
            foreach (User user in users)
            {
                JQGridRow row = new JQGridRow();
                row.id = user.ApplicationNo;
                row.cell = new string[4];
                row.cell[0] = user.ApplicationNo;
                row.cell[1] = user.FirstName;
                row.cell[2] = user.MiddleName;
                row.cell[3] = user.LastName;
                rows.Add(row);
            }
            result.rows = rows.ToArray();
            result.page = pageIndex;
            result.total = (totalRecords + numberOfRows - 1) / numberOfRows;
            result.records = totalRecords;
            return new JavaScriptSerializer().Serialize(result);
        }

        private Collection<User> GetDummyUsers(string numberOfRows, string pageIndex, string sortColumnName, string sortOrderBy, out int totalRecords)
        {
            var data = new Collection<User> {
                    new User(){ FirstName = "Bill", LastName = "Gates", ApplicationNo= "1", MiddleName = "Bill Gates"}
                };
            totalRecords = data.Count;
            return data;
        }
        private Collection<User> GetUsers(string numberOfRows, string pageIndex, string sortColumnName, string sortOrderBy, out int totalRecords)
        {
            Collection<User> users = new Collection<User>();
            string connectionString = "Server=Server;Database=CwizData;Trusted_Connection=True";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                using (SqlCommand command = new SqlCommand())
                {
                    command.Connection = connection;
                    command.CommandText = "select cApplicationNo,cFirstName,cMiddleName,cLastName from Data_Customer_Log";
                    command.CommandType = CommandType.Text; //StoredProcedure;

                    SqlParameter paramPageIndex = new SqlParameter("@PageIndex", SqlDbType.Int);
                    paramPageIndex.Value = Convert.ToInt32(pageIndex);
                    command.Parameters.Add(paramPageIndex);

                    SqlParameter paramColumnName = new SqlParameter("@SortColumnName", SqlDbType.VarChar, 50);
                    paramColumnName.Value = sortColumnName;
                    command.Parameters.Add(paramColumnName);

                    SqlParameter paramSortorderBy = new SqlParameter("@SortOrderBy", SqlDbType.VarChar, 4);
                    paramSortorderBy.Value = sortOrderBy;
                    command.Parameters.Add(paramSortorderBy);

                    SqlParameter paramNumberOfRows = new SqlParameter("@NumberOfRows", SqlDbType.Int);
                    paramNumberOfRows.Value = Convert.ToInt32(numberOfRows);
                    command.Parameters.Add(paramNumberOfRows);

                    SqlParameter paramTotalRecords = new SqlParameter("@TotalRecords", SqlDbType.Int);
                    totalRecords = 0;
                    paramTotalRecords.Value = totalRecords;
                    paramTotalRecords.Direction = ParameterDirection.Output;
                    command.Parameters.Add(paramTotalRecords);


                    connection.Open();

                    using (SqlDataReader dataReader = command.ExecuteReader())
                    {
                        User user;
                        while (dataReader.Read())
                        {
                            user = new User();
                            user.ApplicationNo =Convert.ToString(dataReader["cApplicationNo"]);
                            user.FirstName = Convert.ToString(dataReader["cFirstName"]);
                            user.MiddleName = Convert.ToString(dataReader["cMiddleName"]);
                            user.LastName = Convert.ToString(dataReader["cLastName"]);
                            users.Add(user);
                        }
                    }
                    //totalRecords =(int)(paramTotalRecords.Value);
                   //totalRecords = 0; 

                }

                return users;
            }

        }




        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

Kann mir jemand helfen mit diesem
Alle Vorschläge sind willkommen , danke

  • Sie verwendeten tag jqgrid-asp.net in Frage. Verwenden Sie kommerzielle jqSuite Produkt oder die Kostenlose open-source-jqGrid?
  • sorry, ich bearbeitet den tag , ich benutze open-source-jqGrid.
  • Ich aktualisiert meine Frage.
  • der aktuelle code verwendet SqlCommand und SqlDataReader aber ommand.CommandText die Sie derzeit benutzen, nicht verwendet Parameter (@PageIndex, @NumberOfRows ...). Das Beispiel, das Sie als Vorlage verwendet wurde, orientiert auf die GESPEICHERTE PROZEDUR, die die Parameter und zurück @TotalRecords parameter zusätzlich zu den Zeilen von Daten. Sie können verwenden Sie Entity Framework statt? In dem Fall können Sie den code von DynamicGridData von die Antwort und ersetzen kann GetUsers und BuildJQGridResults mit dem code.
  • ya der code, den ich verwendet wurde, war nicht wirklich verstanden von mir.Empfehlen Sie, dass ich verwenden soll, Linq anstelle von sqlCommand , würde ich sein glücklich, das zu tun , ich bin mit web-Formularen , aus deiner Antwort, auf welchen link soll ich dwonload von
  • Entity Framework ist nicht das gleiche wie LINQ to SQL. Es sind zwei verschiedene Technologien. Die meisten einfach-Implementierungen aus den vorhandenen Beispielen, die Sie herunterladen können, wird die Verwendung von Entity Framework. Versuchen download demo von die Antwort. Es enthält eine test-Datenbank-innen und bieten viele Funktionen, die Sie verwenden können. Nach dem Sie würde verstehen, den code, der das Beispiel, das Sie bewegen könnte, den code in Web Form-Anwendung.
  • Ich werde versuchen, was Sie empfehlen , vielen Dank ,deine Hilfe ist wirklich wertvoll , vielen Dank , werde versuchen und erhalten zurück zu Ihnen , vielen Dank
  • Sie sind herzlich willkommen!
  • Ich weiß, du hast genug geholfen , aber ich finde es wirklich hart, eine Beziehung zu meinem code , könnte Sie veröffentlichen, eine Antwort, die wäre speziell für meinen code gepostet , ich finde es schwer zu verstehen.Natürlich können Sie tun, wenn Sie etwas Zeit haben.Trotzdem danke für die erweiterte Hilfe.
  • Derzeit habe ich zur Vorbereitung für den Besuch der Kunden von morgen. Ich könnte versuchen, etwas zuzubereiten, die Sie später (aber vermutlich nicht heute), wenn ich finden ein wenig freie Zeit.
  • keine Probleme , wie pro Ihre Bequemlichkeit , etwas, das würde sich mit meiner vorhandenen Artikel und einige Kommentare wären Super , vielen Dank ,aber bitte denken Sie daran, dieses.vielen Dank 🙂
  • Wenn Sie haben noch keine post von meinem am Donnerstag können Sie sich erinnern, die mir in den Kommentar.
  • Ich weiß, dass wäre nicht der Fall , aber ich werde Sie daran erinnern, wenn das passiert.
  • Am Ende fand ich die Zeit am Wochenende, für Sie das demo-Projekt, das ich Ihnen versprochen vor.
  • Ich bin froh, dass Sie erinnerte sich daran und nahm sich einige Zeit für diese eine ,,, vielen Dank für Ihre großzügige Hilfe.Ich werde versuchen, zu verstehen, Ihre Antwort und verwenden Sie incase ich brauche etwas Hilfe , ich erhalten zurück zu Ihnen.danke.
  • Sie sind herzlich willkommen!
  • Ich aktualisierte ein wenig die demo (siehe AKTUALISIERT Teil meiner Antwort). Konnte Sie erfolgreich kompilieren Sie das Projekt, und verwenden Sie es in Ihrer Umgebung?
  • Ich war mit etwas anderem , dass ich diese sehr bald , werde ich wieder zu dir, die Zeit.Ich danke Ihnen so sehr.

Schreibe einen Kommentar