Включить кнопку в сетку - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь включить детали кнопок, которые позволяют перейти к деталям страницы

 $("#Grid").ejGrid({
                dataSource: ej.DataManager({
                 ...
columns: [
{ headerText: 'Detail', commands: ['type:"detail", buttonOptions:{text: "details", click:"OnClick"}} ],},
         ],

И тогда я определил свою функцию:

function OnClick(id){ var url = '@Url.Action("Detail","ServicesOrder", new {id="__id__"})'; window.location.href=url.replace('__id__',id); }

myконтроллер ServicesOrder

 public IActionResult Detail(int id)
    {ServicesOrder ServicesOrder = _context.ServicesOrder.SingleOrDefault(x => x.ServicesOrderId.Equals(id));

        if (ServicesOrder == null)
        {
            return NotFound();
        }

        return View(ServicesOrder);
    }

ошибка, которую я получаю

Эта страница сайта не найдена по адресу:

https: // localhost: 44337 / ServicesOrder / Detail /[объект% 20Объект]

Я следил за буквой вашего кода, но не работает (см. изображение). Ошибка 2

Спасибо

1 Ответ

0 голосов
/ 18 февраля 2019

обычно я делал бы это в шаблоне с элементами управления Syncfusion, который работает лучше, а помощники тегов просто работают.

//OPTION 1
//your original source
 $("#Grid").ejGrid({
                dataSource: ej.DataManager({
   columns: [
           { headerText: 'Detail' template: "<a href='/ServicesOrder/Details/{{:OrderId}}'>Finiched</a>"},
           { headerText: 'Order #', field: 'OrderId'}]
});

//OPTION 2
//your original source + tweak

 $("#Grid").ejGrid({
                dataSource: ej.DataManager({
   columns: [
           { headerText: 'Detail', template: true, templateId: "#detailsbutton"}]
});



<script type="text/x-jsrender" id="detailsbutton">
  <a class="btn btn-primary" href="@Url.Action("Details", "ServicesOrder", new {id = {{:OrderId}})>Details</a>
</script>

Пока OrderId существует в запросе к сетке, он найдет его в шаблоне и заполнит соответствующим образом.Имейте в виду, что Syncfusion широко использует JSX под прикрытием (по крайней мере, эта версия EJs1, EJs2 - это полное переписывание с использованием чистого Javascript).Я

Я действительно должен подчеркнуть, что использование только javascript с asp.net core mvc работает, но добавление чистых тегов-помощников, таких как:

<ejs-grid id="OrderGrid" dataSource=@ViewBag.somedata >
    <e-datamanager></e-datamanager>
 <e-grid-columns>
    <e-grid-column field="Id" type="number"></e-grid-column>
 </e-grid-columns>
</ejs-grid>

Намного легче иметь дело!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...