Как отредактировать табличные данные (ASP MVC)

ВАУ наконец-то ...

Эта ошибка была довольно ужасной. В конечном итоге я скачал последнюю версию Eclipse Java EE, затем я установил плагин ADT в новый Eclipse. См. Установка плагина Eclipse .

Впоследствии я настроил свой проект как обычно и использовал правила экспорта, найденные здесь: Подписание ваших приложений

Но в любом случае я видел много ответов ... и реальную проблему очень сложно диагностировать. Возможно, проблема заключается в несовместимости плагина ADT и Eclipse IDE. Я просто знаю, что использование самых последних версий заставит все работать (по состоянию на 5 сентября 2012 г.).

11
задан Brian Tompsett - 汤莱恩 25 September 2016 в 09:14
поделиться

4 ответа

Взгляните на блог Фила Хаака, где он описывает, как привязать модель к списку .

Может быть, это поможет?

5
ответ дан 3 December 2019 в 10:26
поделиться

I would checkout one of the javascript UI libraries first:

WebForms are easier when it comes to quickly developing rich UI's like editable grids.

1
ответ дан 3 December 2019 в 10:26
поделиться

Вчера вечером я реализовал простое решение: форма + таблица внутри, используя поля ввода в ячейках с соглашением об именах, как описано в блоге Фила Хаака (спасибо @BengtBe за ссылка).

Это работает, но немного неудобно (например, добавление строк с помощью jquery требует от меня определения следующего неиспользуемого индекса).

Так что я все еще ищу другие решения.

Я обнаружил, что библиотека extjs , которая предоставляет очень богатую сетку. Мне еще предстоит решить, существует ли простой способ отправить обратно данные сетки в одно из действий моего контроллера, хотя ...

0
ответ дан 3 December 2019 в 10:26
поделиться

У меня та же проблема, и я нашел решение для нее. Не думаю, что он самый красивый, но он идеален для меня, потому что одним из моих требований была возможность редактировать данные таблицы с помощью плагина jQuery Jeditable .

Поэтому я генерирую таблицу с помощью MVCContrib Grid < > extension:

Html.Grid<Somenamespace.Line>( Model.InvoiceLines )
           .Attributes( id => "InvoiceGrid" )
           .Columns( column => {
               column.For( li => li.LineItem.ItemDescription ).Attributes( name => ".LineItem.ItemDescription", @class => "click" );
               column.For( li => li.LineItem.InvoiceUnitNetPrice ).Named( "Unit net price " ).Attributes( name => ".LineItem.InvoiceUnitNetPrice", @class => "click" );
               column.For( li => li.LineItem.InvoiceQuantity ).Attributes( name => ".LineItem.InvoiceQuantity", @class => "click" );
           })
           .Render();  
//rest of the code
Html.Submit("_submit", "Save");

Прямо сейчас Вы можете редактировать значения на месте, но это не обновляет соответствующую модель. Вся магия происходит после того, как пользователь нажимает кнопку отправки:

$(document).ready(function() {
        $('#_submit').click(function(e) {
                e.preventDefault();
                $('#InvoiceGrid tbody tr').each(function(index) {
                    var hidden = $('<input />').attr({ type: 'hidden', name: 'InvoiceLines.Index', value: index });
                    $(this).children('td:first-child').before(hidden);
                    $(this).children('td:not(:first-child)').each(function() {
                        $(this).append($('<input />').attr({ type: 'hidden', value: $(this).text(), name: 'InvoiceLines[' + index + ']' + $(this).attr('name') }));
                    });
                });
                $('form').submit();
            });

            //editable stuff            
            $('.click').editable(function(value, settings) {
                return (value);
            }, { submit: 'OK' });
        });

В каждом TD я создаю скрытый ввод со значением из этого TD, в каждой строке ввода с индексом, и наиболее важным здесь является атрибут name: Name of коллекция в Model [здесь идет индекс] .rest.of.path , поэтому в данном конкретном случае (пример):

InvoiceLines[2].LineItem.ItemDescription

Надеюсь, это поможет, потому что расширенная сетка не всегда является ответом;)

С уважением Матеуш

3
ответ дан 3 December 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: