簡體   English   中英

如何在“a”標簽中定義與 asp.net 核心視圖中的行 ID 相關的詳細數據表

[英]How to show detail Datatable relate to row id in asp.net core view define in "a" tag

我在我的 asp.net 核心 MVC 中定義了兩個數據表,它們都可以正常工作。 其中一個是主表,另一個是詳細信息,並與 Id 相互關聯。 我放了一個“a”標簽來調用詳細信息表,輸入“id”作為過濾器,但是當我點擊我的鏈接時,它沒有傳遞給我的操作。 我復制了我的 controller 以及下面的按鈕:

我的 get 方法只是為了查看;

   [HttpGet]
    public IActionResult SalesDetail()
    {
        //List<SalesViewModel> Ply = _sv.GetSales();
        return View("SalesDetail");
    }


      

我將數據表查詢發送到 sql 的 post 方法:

    public IActionResult SalesDetail([FromQuery] int pId)
    {
        try
        {
            var dict = Request.Form.ToDictionary(x => x.Key, x => x.Value.ToString());
            var parser = new Parser<Sales15DetailViewModel>(ToNameValueCollection<string, 
         string>(dict),
                       _sv.GetSalesDetail(pId));
            var data = parser.Parse();
            var ss = Json(data);
            return Json(data);
        }
        catch (Exception ex)
        {
            return null;
        }
    }

我的母校 html 在腳本標簽中帶有按鈕“詳細信息”:

  @{
  ViewData["Title"] = "list";

   }
  @section Style{

 <link rel="stylesheet" type="text/css" href="/DataTables/DataTableCustom.css" />
 <link href="/dist/css/persianDatepicker-default.css" rel="stylesheet" />
  }
<div class="card-body">
    <div style="width:100%;height:800px;">
        <table id="demoGrid" class="table  table-fixed table-striped table-hover">
        </table>
    </div>
</div>

  @section Scripts{

<script src="/dist/js/persianDatepicker.js"></script>
<script type="text/javascript" src="/DataTables/datatables.min.js"></script>

<script>
    var dataTable;
    $(document).ready(function () {
        loadDataTable();
    });

    function loadDataTable() {
        $(".yadcf-filter-range-date").persianDatepicker();
        dataTable = $('#demoGrid').DataTable({
            serverSide: true,
            processing: true,
            //searchDelay: 500,
            pageLength: 10,
            infoFiltered: true,
            orderMulti: false,
           
            
            "ajax": {
                "url": "SalesDetail",
                "type": "POST",
                "datatype": "json"
            },

            "columns": [
                { "data": "PId", "searchable": true,  "name": "PId", "autoWidth": true },
                { "data": "BNo", "searchable": true,  "name": "BNo", "autoWidth": true },
                { "data": "PrvId", "searchable": true,  "name": "PrvId", "autoWidth": true },
                { "data": "PrvNo", "searchable": true, "name": "PrvNo", "autoWidth": true },
                { "data": "SDate", "searchable": true, "autoWidth": true },
                { "data": "HDate", "searchable": true, "name": "HDate", "autoWidth": true},
            
                {
                    "data": "PId",
                    "render": function (data, type, full, meta) {
                        return `<div class="text-center">
                               <a asp-controller="Report" asp-action="SalesDetail" asp-route- 
    pId="${data}"
                            href="/api/Report/SalesDetail?id=${data}" class="btn btn-primary 
    text-white  btn-lg" style='cursor:pointer; width:100px;'>
                               Detail
                               </a>
                             </div> `;
                    }

                }
            ]
        });
        ]);
       }
    
    </script>
 }

方法一:

請使用<a href="@Url.Action("ActionName", "ControllerName", new { filterName = "", filterValue = '' })">Click</a> ; 調用您的SalesDetail方法。

方法二:

在標簽中添加 onclick 事件,並使用 ajax 在 controller 中調用您的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM