<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
+ ))
Ниже приведены примеры:
Пример 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)