• (下)MVC4ページングコントロールを作成する方法を学びます
  •   ページングコントロールがやって考え、その後、データベースに設定ページクラスを保存するために想定される最後の時間を行う必要はありません.タブは、タブに配置されたHtmlHelperのデータモデルを含んでおり、PagerExtensionsです.このドキュメントのページング直接コピーが直接、過去に使用することができたときに、他の項目は必要に応じながら、CS、関係は、データベースで発生しません..タブ設定部は、フィールド列とコントローラに新しいPagerConfigに直接添加し、次いで、応答の値を設定しました..

      PagerConfigの説明が改訂します

      

      PagerConfigクラス

      ///

      ページングの設定///

      ///

      パブリッククラスPagerConfig

      {

      ///

      /// 現在のページ

      ///

      公共int型currentPageに取得または設定;}

      ///

      ///ページあたりのレコード数

      ///

      公共int型のPageSize取得または設定;}

      ///

      ///総ページ

      ///

      公共int型TOTALPAGE {取得{リターン(int型)数学.天井(TotalRecord /(二重)がPageSize);}}

      ///

      ///合計

      ///

      公共int型TotalRecord取得または設定;}

      ///

      ///記録部

      ///

      パブリック文字列RecordUnit {得る;セット;}

      ///

      ///レコード名

      ///

      パブリック文字列のRecordName {得る;セット;}

      公共PagerConfig()

      {

      currentPageに= 1.

      がPageSize = 20.

      RecordUnit =「記事」.

      RecordName =「録音」.

      }

      }

      モデルの背後にある部分を修正するには、設定タブを保存するために使用しました

      カテゴリーモデルフィールド説明

      

      改訂されたモデルクラスのセクション

      ///

      ///列モデル

      ///

      パブリッククラスカテゴリー

      {

      [キー]

      [表示(NAME = "列ID")]

      公共int型区分取得または設定;}

      ///

      ///プログラム名

      ///

      [表示(NAME = "列名"、説明= "2-20文字")]

      [必須(にErrorMessage = "×")]

      [StringLengthに(50、にErrorMessage = "×")]

      パブリック文字列名前{取得;セット;}

      ///

      ///親タブの数

      ///

      [表示(名前= "親列")]

      [必須(にErrorMessage = "×")]

      公共int型ParentIdはは{取得;セット;}

      ///

      [///親ルート?ノード?パス部は、子ノードの値0:0,1,6,76]

      ///

      [必須 ()]

      パブリックストリングParentPath {得る;セット;}

      ///

      /// [0-従来のカラム型セクション; 1-単一ページセクション; 2-外部リンク]

      ///

      [表示(NAME = "列タイプ")]

      [必須(にErrorMessage = "×")]

      公共int型は{取得または設定し;}

      ///

      ///コンテンツモデルは、[列]は通常の列である場合にのみ有効です

      ///

      [表示(名前= "コンテンツモデル")]

      [StringLengthに(50、にErrorMessage = "×")]

      公共の文字列モデル取得または設定;}

      ///

      ///カラム表示

      ///

      [表示(名=「列を表示」、説明=「ビューのページセクション、255文字まで..「)]

      [StringLengthに(255、にErrorMessage = "×")]

      パブリックストリングカテゴリーView {得る;セット;}

      ///

      ///コンテンツページビュー

      ///

      [表示(名=「表示内容」、説明=「コンテンツページビュー、255文字まで..「)]

      [StringLengthに(255、にErrorMessage = "×")]

      パブリックストリングContentView {得る;セット;}

      ///

      ///リンクアドレス

      ///

      [表示(名=「リンクアドレス」、説明=「欄へジャンプあなたは255文字まで、リンクアドレスをクリックしたとき.「)]

      [StringLengthに(255、にErrorMessage = "×")]

      パブリックストリングLinkUrl {得る;セット;}

      ///

      ///列のソート

      ///

      [表示(名前=「順序付きセクション」、説明=「フロントセクションの兄弟、より少ない数の配列.「)]

      [必須(にErrorMessage = "×")]

      公共int型受注取得または設定;}

      ///

      ソート///コンテンツ

      ///

      [表示(NAME =「ソートコンテンツ」、説明=「コンテンツをソートする列が属し.「)]

      公共のint? ContentOrder {得る;セット;}

      ///

      ///ページあたりのレコード数

      ///

      [表示(名前=「ページあたりのヒット数」、説明=「コンテンツを並べ替えるには、列が属します.「)]

      公共のint? がPageSizeは{取得または設定し}

      ///

      ///記録部

      ///

      [表示(名=「レコード単位」、説明=「ユニットの数が記録さ.ニュース「ストリップ」のために、このような「記事」のような物品として.「)]

      [StringLengthに(255、にErrorMessage = "×")]

      パブリック文字列RecordUnit {得る;セット;}

      ///

      ///レコード名

      ///

      [表示(名=「レコード名」、説明=「名レコード.このような「記事」、「ニュース」、「ガイド」、などなど.「)]

      [StringLengthに(255、にErrorMessage = "×")]

      パブリック文字列のRecordName {得る;セット;}

      公共部門()

      {

      ParentPath = "0";

      タイプ= 0;

      CategoryView =「インデックス」.

      ContentView =「インデックス」.

      注文= 0;

      ContentOrder = 1.

      がPageSize = 20.

      RecordUnit =「記事」.

      RecordName =「記事」.

      }

      }

      モデル磁界発生部が動作を断面図を追加し、変更情報を変換するためにもそれに応じて修正しなければなりません.

      修正ManageAddビュー

      Ninesky @model.モデル.Category

      {@

      ViewBag.タイトル=「ManageAdd」.

      レイアウト=「?/ビュー/レイアウト/ _Manage.CSHTML「;

      }

      

      

      

       セクションを追加

      

      @using(HTML.BeginForm())

      {

      @html.ValidationSummary(真)

      

      セクション

      

        

    •   

        @html.LabelFor(モデル=>モデル.タイプ)

        

        

        @html.DropDownリストコントロール( "タイプ")

        @html.ValidationMessageFor(モデル=>モデル.タイプ)

        @html.DisplayDescriptionFor(モデル=>モデル.タイプ)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.名前)

        

        

        @html.EditorFor(モデル=>モデル.名前)

        @html.ValidationMessageFor(モデル=>モデル.名前)

        @html.DisplayDescriptionFor(モデル=>モデル.名前)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.ParentIdは)

        

        

        @html.TextBoxFor(モデル=>モデル.ParentIdは、新しい{@クラス= "easyui-combotree"、DATA_OPTIONS = "URL:「" +のURL.アクション( "JsonTreeParent"、 "カテゴリー")+ "「"})

        @html.ValidationMessageFor(モデル=>モデル.ParentIdは)

        @html.DisplayDescriptionFor(モデル=>モデル.ParentIdは)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.モデル)

        

        

        @html.DropDownリストコントロール( "モデル")

        @html.ValidationMessageFor(モデル=>モデル.モデル)

        @html.DisplayDescriptionFor(モデル=>モデル.モデル)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.CategoryView)

        

        

        @html.EditorFor(モデル=>モデル.CategoryView)

        @html.ValidationMessageFor(モデル=>モデル.CategoryView)

        @html.DisplayDescriptionFor(モデル=>モデル.CategoryView)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.ContentView)

        

        

        @html.EditorFor(モデル=>モデル.ContentView)

        @html.ValidationMessageFor(モデル=>モデル.ContentView)

        @html.DisplayDescriptionFor(モデル=>モデル.ContentView)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.LinkUrl)

        

        

        @html.EditorFor(モデル=>モデル.LinkUrl)

        @html.ValidationMessageFor(モデル=>モデル.LinkUrl)

        @html.DisplayDescriptionFor(モデル=>モデル.LinkUrl)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.注文)

        

        

        @html.EditorFor(モデル=>モデル.注文)

        @html.ValidationMessageFor(モデル=>モデル.注文)

        @html.DisplayDescriptionFor(モデル=>モデル.注文)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.ContentOrder)

        

        

        @html.DropDownListコントロール( "ContentOrders")

        @html.ValidationMessageFor(モデル=>モデル.ContentOrder)

        @html.DisplayDescriptionFor(モデル=>モデル.ContentOrder)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.ページサイズ)

        

        

        @html.EditorFor(モデル=>モデル.ページサイズ)

        @html.ValidationMessageFor(モデル=>モデル.ページサイズ)

        @html.DisplayDescriptionFor(モデル=>モデル.ページサイズ)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.RecordUnit)

        

        

        @html.EditorFor(モデル=>モデル.RecordUnit)

        @html.ValidationMessageFor(モデル=>モデル.RecordUnit)

        @html.DisplayDescriptionFor(モデル=>モデル.RecordUnit)

        

        

    •   

    •   

        @html.LabelFor(モデル=>モデル.RecordName)

        

        

        @html.EditorFor(モデル=>モデル.RecordName)

        @html.ValidationMessageFor(モデル=>モデル.RecordName)

        @html.DisplayDescriptionFor(モデル=>モデル.RecordName)

        

        

    •   

    •   

        

        

        

        

        

    •   

      

      }

      

      

      

      

      @html.アクション( "ManagePartialTree"、 "カテゴリ")

      

      

      

      

      @sectionスクリプト{

      @Scripts.レンダリング( "?/バンドル/ jqueryval")

      }

      変更ManageAdd(カテゴリカテゴリ)は、主に第1選択した親タブの存在を確認します.適切なフィールドが選択されたカラムの種類に応じていることを確認することは関係なく、フィールドのnullに設定、入力され

      [AdminAuthorize]

      [HttpPost]

      公共のActionResult ManageAdd(カテゴリカテゴリ)

      {

      //親タブの存在

      (カテゴリーRsy場合.(カテゴリ検索.ParentIdは)== NULL)にModelState.AddModelError(「ParentIdは」、「親タブが存在しません..「);

      // ParentPath

      もし(カテゴリー.ParentIdは== 0)カテゴリ.ParentPath = "0";

      他のカテゴリ.ParentPath = カテゴリーRsy.(カテゴリ検索.ParentIdは).ParentPath + "" +カテゴリ.ParentIdは、

      スイッチ(カテゴリ.タイプ)

      {

      ケース0://列.

      (文字列の場合.IsNullOrEmpty(カテゴリー.CategoryView))にModelState.AddModelError( "CategoryView"、 "×");

      カテゴリー.LinkUrl = NULL;

      if (!ストリング.IsNullOrEmpty(カテゴリー.モデル))

      {

      (文字列の場合.IsNullOrEmpty(カテゴリー.ContentView))にModelState.AddModelError( "ContentView"、 "×");

      もし(カテゴリー.ContentOrder == nullの)カテゴリ.ContentOrder = 0;

      もし(カテゴリー.PageSize == nullの)カテゴリ.がPageSize = 20.

      (文字列の場合.IsNullOrEmpty(カテゴリー.RecordUnit))カテゴリ.RecordUnit =「記事」.

      (文字列の場合.IsNullOrEmpty(カテゴリー.RecordName))カテゴリ.RecordName =「録音」.

      }

      そうしないと

      {

      カテゴリー.ContentView = NULL;

      カテゴリー.ContentOrder = NULL;

      カテゴリー.PageSize = NULL;

      カテゴリー.RecordUnit = NULL;

      カテゴリー.RecordName = NULL;

      }

      ブレーク;

      ケース1://単一ページのコラム

      (文字列の場合.IsNullOrEmpty(カテゴリー.CategoryView))にModelState.AddModelError( "CategoryView"、 "×");

      カテゴリー.LinkUrl = NULL;

      カテゴリー.ContentView = NULL;

      カテゴリー.ContentOrder = NULL;

      カテゴリー.PageSize = NULL;

      カテゴリー.RecordUnit = NULL;

      カテゴリー.RecordName = NULL;

      ブレーク;

      ケース2://外部リンク

      (文字列の場合.IsNullOrEmpty(カテゴリー.LinkUrl))にModelState.AddModelError( "LinkUrl"、 "×");

      カテゴリー.CategoryView = NULL;

      カテゴリー.ContentView = NULL;

      カテゴリー.ContentOrder = NULL;

      カテゴリー.PageSize = NULL;

      カテゴリー.RecordUnit = NULL;

      カテゴリー.RecordName = NULL;

      ブレーク;

      デフォルト:

      ModelState.AddModelError( "タイプ"、 "×");

      ブレーク;

      }

      (にModelState場合.IsValidの)

      {

      (カテゴリーRsy場合.追加(カテゴリ))

      {

      お知らせ_n =お知らせ{タイトル=「セクションの成功を追加」の新しい、詳細= +「あなたは成功し、[追加した」カテゴリ.名前+「]セクション!"DwellTime = 5、NavigationName =" トピックのリスト」、NavigationUrl =のURL.アクション( "ManageDefault"、 "カテゴリー")};

      リターンRedirectToAction( "ManageNotice"、 "プロンプト"、_n).

      }

      そうしないと

      {

      エラー_e =新しいエラー{タイトル=「追加のセクションが失敗しました」、詳細=「あなたは、列を追加すると、データベースに保存されていない」、原因=「システムエラー」、ソリューション=サーバー.URLENCODE( "

  • リターンセクションを追加ページには、正しい情報を戻し動作を入力してください
  • 問い合わせウェブマスター
  • 「)}.

      リターンRedirectToAction( "ManageError"、 "プロンプト"、_e).

      }

      }

      そうしないと

      {

      ModuleRepository _moduleRsy =新しいModuleRepository();

      VAR _modules = _moduleRsy.一覧(真の);

      List _slimodule =新しいリスト(_Modules.カウント ());

      _slimodule.(新しいSelectListItem {テキスト= "NO"、値= ""})を加えます.

      foreachの(_modulesでモジュール_module)

      {

      _slimodule.(新しいSelectListItem {テキスト= _moduleを追加.名前、値= _module.モデル}).

      }

      ViewData.( "モデル"、_slimodule)を追加します.

      ViewData.( "タイプ"、TypeSelectList)を追加します.

      ViewData.( "ContentOrders" を追加し、CommonModel.ContentOrders);

      ビュー(カテゴリ)を返します.

      }

      }

      ビューManageDetails詳細に関して以下のセクション.CSHTML実質的に表示ManageAdd.

      そして、そのアクション[ManageUpdate(カテゴリカテゴリ)]フィールドを更新修正.

      1ここで、親セクションを確認するために通過しない場合、認証情報が付加され、それ自体またはサブ列ではありません.図2に示すように、選択された列の種類に応じてNULLにフィールドセットに関係なく、対応する入力フィールドかどうかを確認.図3は、親も多くの列が発生した場合、それ自体とParentPathのそのサブ列を変更します.

      ///

      ///修正情報セクション

      ///

      ///

      ///

      公共のActionResult ManageUpdate(カテゴリカテゴリ)

      {

      //親列は、列自体またはサブではありません

      (カテゴリーRsy場合.IsSelfOrLower(カテゴリー.区分コード、カテゴリ.ParentIdは))にModelState.AddModelError(「ParentIdは」、「それ自身の親セクションまたはサブセクションにすることはできません」).

      スイッチ(カテゴリ.タイプ)

      {

      ケース0://列.

      (文字列の場合.IsNullOrEmpty(カテゴリー.CategoryView))にModelState.AddModelError( "CategoryView"、 "×");

      カテゴリー.LinkUrl = NULL;

      if (!ストリング.IsNullOrEmpty(カテゴリー.モデル))

      {

      (文字列の場合.IsNullOrEmpty(カテゴリー.ContentView))にModelState.AddModelError( "ContentView"、 "×");

      もし(カテゴリー.ContentOrder == nullの)カテゴリ.ContentOrder = 0;

      もし(カテゴリー.PageSize == nullの)カテゴリ.がPageSize = 20.

      (文字列の場合.IsNullOrEmpty(カテゴリー.RecordUnit))カテゴリ.RecordUnit =「記事」.

      (文字列の場合.IsNullOrEmpty(カテゴリー.RecordName))カテゴリ.RecordName =「録音」.

      }

      そうしないと

      {

      カテゴリー.ContentView = NULL;

      カテゴリー.ContentOrder = NULL;

      カテゴリー.PageSize = NULL;

      カテゴリー.RecordUnit = NULL;

      カテゴリー.RecordName = NULL;

      }

      ブレーク;

      ケース1://単一ページのコラム

      (文字列の場合.IsNullOrEmpty(カテゴリー.CategoryView))にModelState.AddModelError( "CategoryView"、 "×");

      カテゴリー.LinkUrl = NULL;

      カテゴリー.ContentView = NULL;

      カテゴリー.ContentOrder = NULL;

      カテゴリー.PageSize = NULL;

      カテゴリー.RecordUnit = NULL;

      category.RecordName = NULL;

      ブレーク;

      ケース2://外部リンク

      (文字列の場合.IsNullOrEmpty(カテゴリー.LinkUrl))にModelState.AddModelError( "LinkUrl"、 "×");

      category.CategoryView = NULL;

      category.ContentView = NULL;

      category.ContentOrder = NULL;

      category.PageSize = NULL;

      category.RecordUnit = NULL;

      category.RecordName = NULL;

      ブレーク;

      デフォルト:

      ModelState.AddModelError( "タイプ"、 "×");

      ブレーク;

      }

      (にModelState場合.IsValidの)

      {

      VAR _pId = categoryRsy.(カテゴリ検索.区分).ParentIdは、

      VAR _oldParentPath = categoryRsy.(カテゴリ検索.区分).ParentPath + "" +カテゴリ.区分;

      //親タブの変更

      もし(カテゴリー.ParentId != _PId)

      {

      // ParentPath

      もし(カテゴリー.ParentIdは== 0)カテゴリ.ParentPath = "0";

      他のカテゴリ.ParentPath = categoryRsy.(カテゴリ検索.ParentIdは).ParentPath + "" +カテゴリ.ParentIdは、

      }

      (categoryRsy場合.アップデート(カテゴリ))

      {

      通知_n =新しいお知らせ{タイトル=「列の変更の成功」、詳細=「列の変更成功!"DwellTime = 5、NavigationName =" 詳細列情報」、NavigationUrl URL =.アクション( "ManageDetails"、 "カテゴリ"、新しい{ID =カテゴリ.区分})}.

      (_oldParentPath場合 !=カテゴリー.ParentPath)

      {

      //変更サブ列ParentPath

      categoryRsy.UpdateCategorysParentPath(_oldParentPath、カテゴリ.ParentPath + "" +カテゴリ.区分);

      }

      リターンRedirectToAction( "ManageNotice"、 "プロンプト"、_n).

      }

      else

      {

      エラー_e =新しいエラー{タイトル=「列の変更に失敗しました」、詳細=「セクション変更時に情報がデータベースに保存されませんでした」、原因=「システムエラー」、ソリューション=サーバー.URLENCODE( "

  • リターンセクションの詳細ページは、操作後に再度情報を変更します
  • 問い合わせウェブマスター
  • 「)}.

      リターンRedirectToAction( "ManageError"、 "プロンプト"、_e).

      }

      }

      else

      {

      ModuleRepository _moduleRsy =新しいModuleRepository();

      VAR _modules = _moduleRsy.一覧(真の);

      List _slimodule =新しいリスト(_Modules.カウント ());

      _slimodule.(新しいSelectListItem {テキスト= "NO"、値= ""})を加えます.

      foreachの(_modulesでモジュール_module)

      {

      _slimodule.(新しいSelectListItem {テキスト= _moduleを追加.名前、値= _module.モデル}).

      }

      ViewData.( "モデル"、_slimodule)を追加します.

      ViewData.( "タイプ"、TypeSelectList)を追加します.

      ViewData.( "ContentOrders" を追加し、CommonModel.ContentOrders);

      ビュー(「ManageDetails」、カテゴリ)を返します.

      }

      }

      

      この記事のためにすべてをだと、私は、私はあなたがスクリプトホームを支えることを願っています学ぶために役立つことがしたいです.

      また、記事に興味がある可能性があります.詳細な例の使用上のlaypageページングコントロールを[写真] ASPに基づいてjQueryの単純なページング制御ASPNETPAGERページングコントロールを使用して、簡単なjqueryのページング制御を実現するために.ネットページングがAspNetPagerページングコントロールにソースコードを造園AspNetPagerのスタイルを制御します(バージョン4.2)AspNetAjaxPager、Aspで.ネットGMフリーのリフレッシュAjaxのページネーションコントロール、データバインディングはサポートマルチスタイルマルチASP.ネットリピータの下にページングコントロールASP AspNetPagerを使用するには.コードソースAspNetPagerページングコントロールを書き換えるネットページングコントロールUrlRewritePatternパラメータの設定

    (下)MVC4ページングコントロールを作成する方法を学びます

    Recommend Article