ドロップダウンで選択した値に基づいて結果をフィルタリングしようとしています。すべてのフィルタリングとすべてが機能しています。ビューを結果で更新するのに苦労しています。いくつかの括弧やその他の無関係なコードを省略しています。これが私が持っているものです:
public ViewResult Index()
{
-- this effectively returns all Invoices no matter what date --
var data = new UserBAL().GetInvoice(date);
return View(data);
}
私のJqueryとAjaxは次のとおりです。
$(document).ready(function () {
$("[name='DDLItems']").change(function () {
var selection = $("[name='DDLItems']").val();
var dataToSend = {
//variable to hold selection?
idDate: selection
};
$.ajax({
type: "POST",
url: "Invoice/FilterInvoice",
data: dataToSend,
success: function (data) {
$("#Index").html(data);
}
[HttpPost] // Selected DDL value
public ActionResult FilterInvoice(int idDate)
{
switch (idDate)
{
case 0:
date = DateTime.Parse("01-01-1754");
break;
case 3:
date = DateTime.Now.AddMonths(-12);
break;
}
//var data is returning my expected results
var data = new UserBAL().GetInvoice(date);
// I know this isn't right and needs to be changed
return View(data);
私のajax成功関数も何もしていないので、これには微調整が必要だと思います。また、テーブルタグを使用してテーブルを表示する方法を次に示します。一部のコードを省略しましたが、重要なものはすべてここにあります。唯一の問題は、フィルター処理された結果をビューにレンダリングすることです。
@foreach (var item in Model) {
<tr><td>
@Html.DisplayFor(modelItem => item.Invoice_Number)
@Html.DisplayFor(modelItem => item.Amt_Total)
</td>