Население Asp.net mvc Webgrid из скрытого поля

0
<input type="text" id="hiddenInp"/>

У меня есть скрытое поле со строковым значением как "col1, col2, col3, col4". Я хочу разбить и зациклить эту скрытую строку с созданием asp.net mvc webgrid, как показано ниже, с помощью Razor. Не могли бы вы помочь мне в этом.

@grid.GetHtml(columns: grid.Columns(
        grid.Column("col1"),
        grid.Column("col2"),
        grid.Column("col3"),
        grid.Column("col4")

        ))

Я пытаюсь иметь цикл for

Result String = splitted column names which are concatenated with grid.column 
@grid.GetHtml(columns: grid.Columns(
+ ResultString
+ ))
Теги:
asp.net-mvc
hidden
webgrid

1 ответ

2
Лучший ответ

Ниже приведены примеры:

Пример 1

Посмотреть

  @{
        var str = "col1,col2,col3,col4";
        string[] columns = str.Split(',');
        var cols = new List<WebGridColumn>();
        foreach (var column in columns)
        {
            cols.Add(grid.Column(column));
        }
    }
    @grid.GetHtml(columns:cols))

Пример 2.

действие

[HttpGet]
public ActionResult WebGrid() 
{
    var columns = new List<WebGridColumn>();
    var values = "col1,col2,col3,col4"; <- Add your hidden filed value here.
    string[] columnlist = values.Split(',');
    foreach (var column in columnlist)
    {
        columns.Add(new WebGridColumn() { ColumnName = column});
    }
    ViewBag.Columns = columns;
   return View();
}

Посмотреть

@grid.GetHtml(columns: ViewBag.Columns)

Пример 3.

Модель

public class MyModel
{
    public List<Column>  ColumnList { get; set; }
}

действие

public ActionResult MyWebGrid()
{
    return View(new MyModel());
}

[HttpPost]
public ActionResult MyWebGrid(string[] selectedcolumns)
{
   var columns = new List<WebGridColumn>();
     foreach (var column in selectedcolumns)
     {
         columns.Add(new WebGridColumn() { ColumnName = column });
      }
     ViewBag.Columns = columns;

     return PartialView("gridPartialView");
  }

Посмотреть

   <script src="~/Scripts/jquery-1.10.2.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

     @using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result" }))
    {
        @foreach (var info in Model.ColumnList )
        {
          <input type="checkbox" class="checkbox" name="selectedcolumns" value="@info.columnName" id="@info.columnName" />
          <label for="@info.columnName">@info.columnName</label>
         }
        <input type="submit" value="Submit"/>
    }
    <div id="result"></div>

Parital View

@grid.GetHtml(columns: ViewBag.Columns)
  • 0
    Я пытался это, но он выдает ошибку "выражение ожидается после grid.Columns (
  • 1
    привет @ Ушам, я обновил свой ответ.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню