メイン メニューから呼び出した通常のビューで Flexigrid を表示できます。私はこのサンプルhttp://mvc4beginner.com/Sample-Code/Insert-Update-Delete/Asp-.Net-MVC-Ajax-Insert-Update-Delete-Using-Flexigrid.htmlを使用して動作させ、動作させています私にとっては結構です。
ただし、私の考えは、もう少し複雑なインターフェイスを使用することです。検索コントロールを使用して通常のビューを表示し、検索ボタンを押すと、検索したアイテムのデータをグリッドに表示します。
これまでにいくつかのことを試しましたが、うまくいきません。私が試した最新のインデックスビューは次のとおりです。
@model CardNumbers.Objects.Client
@{
ViewBag.Title = "Clients";
}
<h2>Clients</h2>
<br />
@using (Ajax.BeginForm("Search", "Client",
new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "ClientsResults"
}))
{
<fieldset>
<legend>Search</legend>
<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 data-autocomplete="@Url.Action("QuickSearch", "Client")" name ="searchClientName" />
<div>
<input type="submit" value="Find / Refresh" />
@*<input type="button" value="Find / Refresh" id="ClientsSearch" data-url="@Url.Action("Client", "Client")" />
@*<input type="submit" value="Find / Refresh" />*@
@* @Ajax.ActionLink("Find / Refresh", "Client", new AjaxOptions {UpdateTargetId = "ClientResults",
InsertionMode = InsertionMode.Replace, HttpMethod = "POST"}) *@
@*}*@
</div>
</fieldset>
<div style="padding-left:150px; padding-top:50px; padding-bottom:50px;" id="ClientsResults">
@*@{Html.RenderPartial("_Client", Model); }*@
@*<table id="flexClients" style="display:none"/>*@
</div>
}
@*<br />*@
コメントされたすべての試みもここで見ることができます。そのため、Clients コントローラーの Search メソッドには次のコードが含まれるようになりました。
public ActionResult Search(int? searchClientNo = null, string searchClientName = null)
{
// Assume we want to select everything
var clients = Db.Clients; // Should set type of clients to IQueryable<Clients>
if ((searchClientNo ?? 0) != 0) //Number was supplied
clients = clients.Where(c => (c.Number == searchClientNo));
// If clientNo was supplied, clients is now filtered by that. If not, it still has the full list. The following will further filter it.
if (!String.IsNullOrWhiteSpace(searchClientName)) // Part of the name was supplied
clients = clients.Where(c => (c.Name.Contains(searchClientName)));
return PartialView("_ClientsSearch", clients);
//return PartialView("_Client", clients);
}
コメント付きのビューは、フレキシグリッドを持つ部分ビューであり、機能していません。_ClientsSearch ビューは、テンプレートを使用して作成された "通常の" インデックス ビューであり、これは機能します。
私が見逃しているものが正確にわかりますか?flexigrid メソッドは、そのメイン ビューから部分ビューとして使用しようとすると、まったく起動しません。