1

Lib.Web.Mvc 3 のヘルパー クラスを使用しているときに、問題が発生しました。

問題-

最初のページの読み込み時に表示されないように、jqGrid の隠しプロパティを true に設定しています。ただし、ユーザーがリストからアイテムを選択すると、グリッドの隠しプロパティが false に設定され、リロード トリガーが開始されます。しかし、何らかの理由で、アイテムが選択されてリロード リガーが発生した後、コントローラー アクションが呼び出されません。私はMVCの初心者ですので、もしそうならばかげた質問を許してください.Thank!.

<div id="gridWrapper">
@{

var grid = new JqGridHelper<Configuration.Models.Post.ProfileModel>(
    "Servers",
    caption: "Servers List",
    hidden: true,
    hiddenEnabled: true,
    dataType: JqGridDataTypes.Json,
    methodType: JqGridMethodTypes.Post,
    pager: true,
    rowsNumber: 10,
    sortingName: "Profile",
    sortingOrder: JqGridSortingOrders.Asc,
    url: Url.Action("GetServersWithSettings"),
    editingUrl: Url.Action("Edit"),
    loadComplete: "function (data) {var recs =    
    parseInt($(\"#Servers\").getGridParam(\"records\"),10);" +
                  "if (isNaN(recs) || recs == 0) {" +
                  "$(\"#gridWrapper\").hide();" +
                  "}" +
                  "else {$('#gridWrapper').show();" +
                  "}"+"}",

    sortable: true
  ).Navigator(new JqGridNavigatorOptions
    {
        Add = true,
        Delete = false,
        //Edit = true,
        View = false
    })
    .FilterToolbar(new JqGridFilterToolbarOptions
    {
        StringResult = true,
        DefaultSearchOperator = JqGridSearchOperators.Cn,
        AutoSearch = true,
        SearchOnEnter = false,

    });
    @grid.GetHtml()
}
</div>



@section scripts {

<link href="@Url.Content("~/Content/themes/base/jquery-ui.css")" rel="stylesheet"   
 type="text/css" />
<link href="@Url.Content("~/Content/jquery.jqGrid/ui.jqgrid.css")" rel="stylesheet" 
 type="text/css" />
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-
ui.css" />
<style>
    #feedback { font-size: 1.4em; }
    #selectable .ui-selecting { background: #FECA40; }
    #selectable .ui-selected {background: #F39814;color: white; }
    #selectable {list-style-type: none;margin: 0;padding: 0;width: 60%; }
    #selectable li {margin: 3px;padding: 0.4em;font-size: 1.4em;height: 18px; }
</style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script src="@Url.Content("~/Scripts/i18n/grid.locale-en.js")" type="text/javascript">
</script>
<script src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")" type="text/javascript">
</script>

<script type="text/javascript">
    $(document).ready(function() {
        @grid.GetJavaScript();
       })
</script>
<script type="text/javascript">
            // callback function to bring a hidden box back
    $(function() {
        $("#selectable").selectable({
            stop: function() {
                $(".ui-selected", this).each(function() {
                    var url = 'Profile/GetServersWithSettings/?id=' +                                             
                               $(this).attr('id');
                    $("#Servers").jqGrid('setGridParam', { url: url 
                    }).trigger('reloadGrid');
              });
            }
        });
    });
</script>
}
4

1 に答える 1

0

hidden: true から $(this).Hide() に変更する必要があると思います

次に、関数で $(this).Show() と記述します

于 2013-09-19T18:25:54.080 に答える