vs2017 + miniUI +のDapperのは、追加、変更、削除、クエリ操作

、データベーステーブルには、以前に確立された会社の会社情報テーブルを参照します。

 

Bは、ファイルを作成します。

ビューの「ホーム」Company.cshtml (新規ファイル)、以下のように(ちょうどそれをコピーします)

 

@ {

    レイアウト=レイアウト= "〜/ビュー/共有/ _Layout.cshtml"; ;

}

<divのスタイル= "幅:100%;">

    <DIV CLASS = "ミニツールバー" スタイル= "のborder-bottom:0;パディング:0PX;">

        <表のスタイル= "幅:100%;">

            <TR>

                <TDスタイル= "幅:100%;">

                    <a class="mini-button" iconCls="icon-add" onclick="add()">添加する</a>

               

                </ TD>

                <TDスタイル= "空白:NOWRAP;">

                    <入力されたID = "キー" 名前= "キー" クラス= "ミニテキストボックス" emptyText = "请输入姓名" スタイル= "幅:150ピクセル;" />

                    <a class="mini-button" onclick="search()">查询する</a>

                </ TD>

            </ TR>

        </ TABLE>

    </ div>

</ div>

 

<DIV ID = "はDataGrid1" クラス= "ミニデータグリッド" スタイル= "幅:100%;高さ:280px;" allowResize = "true" とのpageSize = "10"

     URL = "/ホーム/ CompanyList" idField = "ID" 複数選択= "true" のページサイズ= "20" showpager = "真">

    <divのプロパティ= "列">

        <! - <divのタイプ= "indexcolumn"> </ div> - >

        <divのタイプ= "checkcolumn"> </ div>

        <DIVフィールド= "得意先名" 幅= "120" headerAlign = "中心" allowSort = "真">公司名称</ div>

        <DIVフィールド= "アドレス" 幅= "120" headerAlign = "中心" allowSort = "真">地址</ div>

        <DIVフィールド= "モバイル" 幅= "120" headerAlign = "中心" allowSort = "真">电话</ div>

        <div要素名= "アクション" 幅= "100" レンダラ= "onGenderRenderer" headerAlign = "センター">操作</ div>

    </ div>

</ div>

 

<スクリプト>

 

    mini.parse();

    VARグリッド= mini.get( "はDataGrid1");

    grid.load();

 

    grid.on( "drawcell" 機能(E){

        各レコード= e.record、

            列= e.column、

            フィールド= e.field、

            値= e.value。

 

        //アクション列、超接続されている操作ボタン

        IF(column.name == "アクション"){

            e.cellStyle =「テキスト整列:センター」;

            e.cellHtml =「<クラス= "ミニボタン" スタイル= "幅:60PX;" href = "javascriptの編集(\ '' + record.id + '\')">修改</a>の&NBSP; "

                +「<クラス= 『ミニボタン』スタイル= 『幅:60PX;』href = "javascriptを:デル(\ '' + record.id + '\')">删除</a>を」

        }

    });

 

 

    関数検索(){

        VARキー= mini.get( "キー")の値。

 

        grid.load({キー:キー})。

    }

    $( "#キー")。バインド( "KeyDownイベント"、機能(e)の{

        IF(e.keyCode == 13){

            サーチ();

        }

    });

 

    関数デル(行ID){

        IF(rowid.length> 0){

            {(「選択したレコードを削除するには、[OK]を?」(確認))の場合

 

                grid.loading( "動作......お待ちください");

                $アヤックス({

                    URL: "/ホーム/削除のid =?" + ROWID、

                    タイプ:「ポスト」、

                    成功:機能(テキスト){

                        grid.reload();

                    }、

                    エラー:関数(){

 

                    }

                });

            }

        }他{

            警告(「レコードを選択してください」);

        }

    }

 

 

 

    //追加、変更、

    関数編集(行ID){

 

        mini.open({

            targetWindow:窓、

 

            URL: "/ホーム/ CompanyEdit ID =?" + ROWID、

            タイトル: "条件設定"、幅:800、高さ:600、

            オンロード:関数(){

                VAR IFRAME = this.getIFrameEl()。

                VARデータ= {アクション: "新しいです"}。

 

                iframe.contentWindow.OpenContext = {親:窓、popwin:この}。

               

            }、

            ondestroy:機能(作用){

                ロード()。

                grid.reload();

            }

        });

 

    }

 

    //新しいです

    機能の追加(){

        mini.open({

            targetWindow:窓、

 

            URL: "/ホーム/ CompanyEdit"、

            タイトル: "メニューを追加"、幅:700、高さ:300、

            オンロード:関数(){

                VAR IFRAME = this.getIFrameEl()。

                VARデータ= {アクション: "新しいです"}。

                ロード()。

                iframe.contentWindow.OpenContext = {親:窓、popwin:この}。

            }、

            ondestroy:機能(作用){

 

                grid.reload();

            }

        });

    }

 

    機能ロード(){

        mini.mask({

            エル:document.body、

            CLS:「ミニマスクローディング」、

            HTML: '読み込み中...'

        });

        setTimeout(関数(){

            mini.unmask(document.body)。

        }、1000)。

    }

</ SCRIPT>

 

ビューの「ホーム」CompanyEdit.cshtml (新規ファイル)、以下のように(ちょうどそれをコピーします)

 

@model MiniUi_Dapper.Controllers.Company

 

@ {

    ViewBag.Title = "CompanyEdit"。

    レイアウト= "〜/ビュー/共有/ _Layout.cshtml";

}

 

<フォームID = "Form1の" METHOD = "POST">

 

 

    <DIV CLASS = "ミニフィット」">

        <入力名= "ID" ID = "ID" クラス= "ミニ隠された" 値= "@ Model.id" />

        <表国境= "0" CELLPADDING = "2" CELLSPACING = "0" クラス= "EditTable" スタイル= "幅:100%">

            <TR>

                <TDクラス= "tdLabel" スタイル= "幅:30%;">名前:</ TD>

                <TDクラス= "tdText" スタイル= "幅:70%;"> <入力クラス= "ミニテキストボックス" ID = "得意先名" NAME = "得意先名" スタイル= "幅:200pxの、" 値= "@ Model.CompanyName"> </ TD>

            </ TR>

            <TR>

                <TDクラス= "tdLabel" スタイル= "幅:30%;">地址:</ TD>

                <TDクラス= "tdText" スタイル= "幅:70%;"> <入力クラス= "ミニテキストボックス" ID = "アドレス" 名前= "アドレス" スタイル= "幅:200pxの。" 値= "@ Model.Address"> </ TD>

            </ TR>

            <TR>

                <TDクラス= "tdLabel" スタイル= "幅:30%;">电话:</ TD>

                <TDクラス= "tdText" スタイル= "幅:70%;"> <入力クラス= "ミニテキストボックス" ID = "モバイル" NAME = "モバイル" スタイル= "幅:200pxの、" 値= "@ Model.mobile"> </ TD>

            </ TR>

 

        </ TABLE>

 

        <divのスタイル= "テキスト整列:センター;パディング:10pxの;">

            <a class="mini-button" onclick="onOk" style="width:60px;margin-right:20px;">确定する</a>

            <a class="mini-button" onclick="onCancel" style="width:60px;">取消する</a>

        </ div>

    </ div>

</フォーム>

 

 

ます。<script type = "text / javascriptの">

 

    mini.parse();

    VARフォーム=新しいmini.Form( "Form1の");

    機能SaveDataを(){

 

        VARフォーム=新しいmini.Form( "#1をForm1");

        VARデータ= form.getDataは(); //取得したデータは、コントロールを複数形成します

        // VARのJSON = mini.encode(データ); // JSONに配列

        $アヤックス({

            URL: "/ホーム/ CompanySave"、

            タイプ:「ポスト」、

            日付:日付、

            成功:機能(テキスト){

                //警告(「結果を返し、成功を提出:」+テキスト)。

                //grid.reload()。

 

                CloseWindow( "成功を提出");

            }

        });

    }

 

    関数のGetData(){

        VAR 0 = form.getData()。

        Oを返します。

    }

    関数CloseWindow(アクション){

        IF(アクション== "近い" && form.isChanged()){

            場合(確認(「データは保存するかどうか、変更されました?」)){

                falseを返します。

            }

        }

        場合(window.CloseOwnerWindow)window.CloseOwnerWindow(アクション)を返します。

        他にはwindow.close();

    }

    そこ関数(E){

        SaveDataを();

    }

    関数onCancel(E){

        CloseWindow( "キャンセル");

    }

</ SCRIPT>

 

コントローラ「HomeController.cs (コントローラー新方式)、次のように(直接コピーそれ)

 

#region管理

 

/// <要約>

///

/// </要約>

/// <PARAM NAME = "pageIndexパラメータ"> </ param>の

/// <PARAM NAME = "pageSizeを"> </ param>の

/// <PARAM NAME = "キー">クエリのキーワード、</ param>の現在の会社名と一致

/// <リターン> </リターン>

[HttpPost]

公共のActionResult CompanyList(int型?pageIndexパラメータ、int型?pageSizeを、文字列キー)

{

    使用した(するvar CONN =新しいMySqlConnectionに(のConnectionString))

    {

         pageIndexパラメータ= pageIndexパラメータ?? 0;

         pageSizeを=のpageSize?10;

 

         文字列のクエリ=「」;

         (キー!= nullの&& key.Trim()!= "")の場合

             クエリ "仕入 '%+キー+ "%などの"'" = + "社から" SELECT *;

         他

             クエリ= "社から" SELECT *;

 

         VaRの結果= conn.Query <会社>(クエリー).ToList();

         VaRの合計= result.Count()。

 

         リスト=結果でした

         .OrderByDescending(D => d.id).SKIP((pageIndexパラメータ*のpageSize).Valueの)

         .Take((pageSizeを).Valueの).Select(D =>新しいです

         {

             した、

             d.CompanyName、

             d.Address、

             d.mobile、

             d.link、

             d.intodate

         })ToListメソッド()。

         JSON(新しい{合計=合計、データ=リスト}、JsonRequestBehavior.AllowGet)を返します。

    }

}

 

[HTTPGET]

[表示(説明= "負荷会社")]

公共のActionResult CompanyEdit(int型?ID)

{

    ID = 0はID> 0が変更操作であれば、操作を向上させることである場合、//、編集ページをクリックします。

    使用した(するvar CONN =新しいMySqlConnectionに(のConnectionString))

    {

         N社;

         IF((ID ?? 0)== 0)

             N =新しい会社();

         他

         {

             N = conn.Query <会社> .FirstOrDefault()(+ ID "ID =会社SELECT * FROM");

             IF(N == NULL)

                   ビュー(「いいえ会社情報」)を返します。

         }

 

         ビュー(n)を返します。

    }

}

 

 

[HttpPost]

[表示(説明=「保存企業情報」)]

公共のActionResult CompanySave(会社会社)

{

    試します

    {

         使用した(するvar CONN =新しいMySqlConnectionに(のConnectionString))

         {

        

             もし(company.id == 0)

             {

                   VARクエリは= "` company`( `CompanyName`、` Address`、 `mobile`、` link`)VALUES(@CompanyName、@Address、@mobile、@link)中に挿入します。";

                   VaRの結果= conn.Query <会社>(クエリ、会社).FirstOrDefault();

                   JSON({@return = 1}新しい、JsonRequestBehavior.AllowGet)を返します。

             }

             他

             {

                   VARクエリ= "UPDATE` company` SET `CompanyName` = @CompanyName、` Address` = @Address、 `mobile` = @mobile、` link` = @link WHERE `id` =" + company.id + ";" ;

                   VaRの結果= conn.Query <会社>(クエリ、会社).FirstOrDefault();

 

                   (結果== null)の場合

                       JSON({@return = 1}新しい、JsonRequestBehavior.AllowGet)を返します。

                   他

                       JSON({@return = 1}新しい、JsonRequestBehavior.AllowGet)を返します。

 

             }

         }

 

    }

    キャッチ(例外の例)

    {

         JSON({@return = 1}新しい、JsonRequestBehavior.AllowGet)を返します。

    }

    JSON({@return = 1}新しい、JsonRequestBehavior.AllowGet)を返します。

}

 

/// <要約>

///主キーIDと削除

/// </要約>

///ます。<param name = "ID"> </ param>の

/// <リターン> </リターン>

公共のActionResultは(int型のID)を削除します。

{

    使用した(するvar CONN =新しいMySqlConnectionに(のConnectionString))

    {

         conn.Execute( "会社から削除どこのid =" + ID);

         JSON({@return = 1}新しい、JsonRequestBehavior.AllowGet)を返します。

    }

}

 

#endregion

 

 

 

 

左側のナビゲーションメニューのJSONファイルを変更します。

 

 

これは、検索データベースの追加および削除を変更する操作を完了します。それを実行し、その結果を参照してください。

 

 

ソースコードや交換のために頼むことができますQQグループを追加します:547 765 059

 

おすすめ

転載: www.cnblogs.com/seem111111/p/10942888.html