MVC Webgrid, javascript перестает работать после сортировки и подкачки - PullRequest
1 голос
/ 13 марта 2012

У меня проблема с моей веб-сеткой, в одной из моих колонок есть ссылки на действия, в которых есть JavaScript с функцией щелчка, все работает нормально.Но после того, как я отсортировал какой-либо столбец или разбил на страницы таблицу, мой JavaScript перестает работать.Я удалил свойство ajaxupdatecontainerID, и мой JavaScript работает после подкачки, но я больше не могу сортировать свои столбцы, и после подкачки браузер прокручивает страницу вверх.проверьте мой код ниже:

<div id="grider">
    @{ var grid3 = new WebGrid(Model.webgridlastlopp.ToList(), rowsPerPage: 10, defaultSort: "Status", canPage: true, ajaxUpdateContainerId: "grider");}
    @grid3.GetHtml(tableStyle: "webgrid",
                        headerStyle: "webgrid-header",
                        footerStyle: "webgrid-footer",
                        alternatingRowStyle: "webgrid-alternating-row",
                        selectedRowStyle: "webgrid-selected-row",
                        rowStyle: "webgrid-row-style",
                        grid3.Column("Startstation", "Start station/kombiterminal"),
                                              grid3.Column("Slutstation", "Slut station/kombiterminal"),
                                              grid3.Column("Upphämtningsdatum", "Startdatum", format: @<text>@item.Upphämtningsdatum.ToString("yyyy/MM/dd")</text>),
                                              grid3.Column("Leveransdatum", "Leveransdatum", format: @<text>@item.Leveransdatum.ToString("yyyy/MM/dd")</text>),
                                              grid3.Column(format: (item) => Html.ActionLink("Visa detaljer", "OrderDetails", "Home", new { id = item.Ordernummer }, new { @class = "modal", @Style = "color:Gray;" }))
                                              ))
  </div>
  <script type="text/javascript">
        $(function () {
            $('.modal').click(function () {
                alert("hello");
        });
  </script>

Ответы [ 2 ]

1 голос
/ 12 сентября 2017

В вашем коде добавьте ссылку на функцию js для атрибута

     @{ 
var grid3 = new WebGrid(
   Model.webgridlastlopp.ToList(), 
rowsPerPage: 10, 
    defaultSort: "Status", 
canPage: true, 
    ajaxUpdateContainerId: "grider",
ajaxUpdateCallback: "GridUpdate");
}

функция js

function GridUpdate(data) {
        applyGridChanges();
    }
1 голос
/ 13 марта 2012

По мере загрузки страницы на страницу загружается новый HTML. Из-за этого вам нужно использовать метод jQuery live:

<script type="text/javascript">
        $(function () {
            $('.modal').live('click', function () {
                alert("hello");
        });
  </script>

jQuery live

...