Ted Lowell Ответов: 0

Как добавить значения в текстовые поля webgrid с помощью модели, переданной в представление


I have a controller that is creating some columns for my WebGrid based on the names of some fields. For example, I have a field that is titled "e_qty", and the "e_" means that it should end up being an editable field. So the function is there that creates the textbox columns for the WebGrid if needed (it works fine). I'm passing the datatable as a list of objects to the View. Normally this will populate my WebGrid with all the values just fine. It's when I have textboxes in my WebGrid that it doesn't add the actual values. I can set the "value" property of the textboxes in the controller, but that defeats the purpose of sending the list of objects to the view. So the question is: Can you use a model to populate a WebGrid that has textboxes without having to set the "value" property? I'm just wanting to know if what I'm trying to do is possible.


Вот как я переношу модель с контроллера и заполняю WebGrid:

@ModelType System.Collections.Generic.IEnumerable(Of Object)
@Code
    Layout = "~/Views/Shared/_VisualRuleLayout.vbhtml"
End Code

<link href="~/Content/bootstrap.css" rel="stylesheet" />

@Using Html.BeginForm("Cancel", "GridView", FormMethod.Post)
    @<text>
        <div Class="form-horizontal">
            <form>
                <h3>@ViewBag.Title</h3>

                @Code
                    Dim grid = New WebGrid(Model, canPage:=True, canSort:=True, rowsPerPage:=50)
                    grid.Pager(WebGridPagerModes.NextPrevious)
            End Code

        <div>
                @Code
                    @grid.GetHtml(htmlAttributes:=New With {
                        .id = "grid",
                        .class = "table table-bordered table-striped table-condensed",
                        .name = "grid1"},
                        emptyRowCellValue:="No Records Found",
                        headerStyle:="grid-header",
                        columns:=ViewBag.Columns)
                End Code
            </div>
        </div>


Что я уже пробовал:

Я попытался установить ячейки WebGrid обратно в простые ячейки, и это работает, но мне нужно, чтобы редактируемые столбцы отображались в виде текстовых полей со значением ячейки, уже заполненным в нем.

Я также попытался настроить столбцы e_ на скрытые текстовые поля, надеясь, что после нажатия кнопки редактирования текстовое поле может быть не скрыто и значение будет установлено в его свойство "value". Но это не сработало, потому что исходное значение из модели все еще не заполняло ячейку WebGrid из-за скрытого текстового поля.

0 Ответов