Смотрите ниже примеры:
Пример 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 Посмотреть
@grid.GetHtml(columns: ViewBag.Columns)
Я пробовал это, но он выдает ошибку "выражение, ожидаемое после grid.Columns ( – Kurkula
привет @ Ушам, я обновил свой ответ. – Lin
выглядит действительно потрясающе, но в соответствии с моей просьбой, как я могу передать скрытое значение str. – Kurkula