1

何日もの間、フレキシグリッドでモーダルダイアログ編集を実装しようとして失敗しました。

私は非常に簡単な例から始めました:

http://mvc4beginner.com/Sample-Code/Insert-Update-Delete/Asp-.Net-MVC-Ajax-Insert-Update-Delete-Using-Flexigrid.html

この例を大幅に拡張しましたが、障害にぶつかり、目的の機能を実現する方法がわかりません。

次のjquery関数を実装しました。

    関数RunModalDialog(title、url)
    {{
        $( "#sform")。dialog({
            autoOpen:false、
            ショー:「ブラインド」、
            closeOnEscape:true、
            サイズ変更可能:true、
            幅:1200、
            高さ:750、
            minHeight:600、
            minWidth:950
        });
        if(タイトル)
            $( "#sform")。dialog( "option"、 "title"、title);

        if(url)
            $( "#sform")。load(url).dialog( "open");
        そうしないと
          $( "#sform")。dialog( "open");

そして、[追加]ボタン(URLなし)と[編集]ボタン(URLあり)から呼び出しています。

追加では問題なく機能しますが(実際の保存とグリッドの更新はまだ実装していませんが)、編集では機能しません。

これが私のメインビューコードです

@model CardNumbers.Objects.Client

@{
    ViewBag.Title = "Clients";
}

@section scripts {
    <script src="@Url.Content("~/Scripts/Clients.js")" type="text/javascript" ></script>
}

<form id="frmClientsSearch">
    <label for="clientNo">Client No: </label>
    <input type="number" name="searchClientNo" class="numericOnly" /><br />
    <label for="clientName">Client Name: </label>
    <input type="text" size="25" value="Please enter the search value" class="SelectOnEntry"
        name="searchClientName" />

    <input type="button" id="btnClientsSearch" value="Find / Refresh" />
</form>
<div style="padding-left: 150px; padding-top: 50px; padding-bottom: 50px;" id="ClientsResults">
    <table id="flexClients" style="display: none">
    </table>
</div>

<div id="editor" style ="visibility :hidden ">
      @using (Html.BeginForm(null, null, FormMethod.Post, new { id = "sform", title = "Client Info" }))
     { 
        @Html.Partial("_ClientForm", Model)   
      }      
</div>

そして、クライアントコントローラーのEditメソッドは、次のようなビューを返します。

    @model CardNumbers.Objects.Client

    @ {
        ViewBag.Title="クライアントの編集";
        レイアウト="〜/ Views / Shared / _PopupLayout.cshtml";
    }

    @ Html.Partial( "_ ClientForm"、モデル)

    @sectionスクリプト{
        @ Scripts.Render( "〜/ bundles / jqueryval")
        
    }

私はもともと_ClientForm内にBeginFormを持っていて、フォームを見ることができましたが、x(閉じる)とサイズ変更が機能しませんでした。フォームを開始する線を外側に移動しようとしましたが、動作がさらに悪化しました。

これがどのように機能するのか教えていただけますか?

4

1 に答える 1

1

私が考えることができる2つのことは

  1. URLが有効であることを確認してください。

  2. divがいっぱいになったら、ダイアログを呼び出します

    $("#sform").load(url).dialog("open");

になります

    $("#sform").load(url, function(){
       $("#sform").dialog("open");
    });

「完全な」コールバックが提供されている場合は、後処理とHTML挿入が実行された後に実行されます。

これは、変更される前の質問に対する提案された回答であることに注意してください

于 2012-12-21T00:28:24.700 に答える