public JQGridDataClass GetJson()
        {
            // サンプルデータ取得
            DataTable dt = this.CreateSampleData();

            // クエリ文字列から、グリッドの表示に関する情報を取得
            NameValueCollection queryStrings = HttpContext.Current.Request.QueryString;
            string page = queryStrings["page"]; // クエリの現在のページ
            string rows = queryStrings["rows"]; // 1 ページあたりの行数
            string sidx = queryStrings["sidx"]; // ソート列
            string sord = queryStrings["sord"]; // ソートの方向
            int intPage = int.Parse(page);
            int intRows = Math.Min(int.Parse(rows), dt.Rows.Count);

            // jqGrid に渡すデータを格納
            JQGridDataClass data = new JQGridDataClass();
            data.page = page;
            data.total = (int)Math.Ceiling((double)dt.Rows.Count / (double)intRows);
            data.records = dt.Rows.Count;

            // ソート
            DataRow[] dataRows;
            if (!string.IsNullOrEmpty(sidx))
            {
                // ソートあり
                dataRows = dt.Select(null, sidx + " " + sord);
            }
            else
            {
                // ソートなし
                dataRows = dt.Select(null);
            }

            // jqGrid の各セルに表示するデータを格納
            data.rows = new List<JQGridDataRowClass>();
            for (int rIndex = 0; rIndex < intRows; rIndex++)
            {
                // ページなどを考慮し、DataTable から取得する行インデックスを取得
                int actualRowIndex = ((intPage - 1) * intRows) + rIndex;

                if ((actualRowIndex + 1) > dataRows.Length)
                {
                    // 行インデックスが、実際の行数を超えた場合は、ループを抜ける
                    // (最終ページの行数が端数の場合)
                    break;
                }

                // jqGrid に表示する、1 行分のデータを格納
                JQGridDataRowClass subData = new JQGridDataRowClass();
                subData.id = dataRows[actualRowIndex][0].ToString();
                subData.cell = new List<string>();

                for (int cIndex = 0; cIndex < dt.Columns.Count; cIndex++)
                {
                    // 列のデータを、DataTable から取得
                    subData.cell.Add(dataRows[actualRowIndex][cIndex].ToString());
                }
                data.rows.Add(subData);
            }

            // jqGrid にデータを返す
            return data;
        }
        public JQGridDataClass GetJson()
        {
            // サンプルデータ取得
            DataTable dt = this.CreateSampleData();

            // クエリ文字列から、グリッドの表示に関する情報を取得
            NameValueCollection queryStrings = HttpContext.Current.Request.QueryString;
            string page    = queryStrings["page"]; // クエリの現在のページ
            string rows    = queryStrings["rows"]; // 1 ページあたりの行数
            string sidx    = queryStrings["sidx"]; // ソート列
            string sord    = queryStrings["sord"]; // ソートの方向
            int    intPage = int.Parse(page);
            int    intRows = Math.Min(int.Parse(rows), dt.Rows.Count);

            // jqGrid に渡すデータを格納
            JQGridDataClass data = new JQGridDataClass();

            data.page    = page;
            data.total   = (int)Math.Ceiling((double)dt.Rows.Count / (double)intRows);
            data.records = dt.Rows.Count;

            // ソート
            DataRow[] dataRows;
            if (!string.IsNullOrEmpty(sidx))
            {
                // ソートあり
                dataRows = dt.Select(null, sidx + " " + sord);
            }
            else
            {
                // ソートなし
                dataRows = dt.Select(null);
            }

            // jqGrid の各セルに表示するデータを格納
            data.rows = new List <JQGridDataRowClass>();
            for (int rIndex = 0; rIndex < intRows; rIndex++)
            {
                // ページなどを考慮し、DataTable から取得する行インデックスを取得
                int actualRowIndex = ((intPage - 1) * intRows) + rIndex;

                if ((actualRowIndex + 1) > dataRows.Length)
                {
                    // 行インデックスが、実際の行数を超えた場合は、ループを抜ける
                    // (最終ページの行数が端数の場合)
                    break;
                }

                // jqGrid に表示する、1 行分のデータを格納
                JQGridDataRowClass subData = new JQGridDataRowClass();
                subData.id   = dataRows[actualRowIndex][0].ToString();
                subData.cell = new List <string>();

                for (int cIndex = 0; cIndex < dt.Columns.Count; cIndex++)
                {
                    // 列のデータを、DataTable から取得
                    subData.cell.Add(dataRows[actualRowIndex][cIndex].ToString());
                }
                data.rows.Add(subData);
            }

            // jqGrid にデータを返す
            return(data);
        }