<input type="text" id="hiddenInp"/>
I have a hidden field with string value as "col1,col2,col3,col4". I want to split and loop that hidden string with create asp.net mvc webgrid as below with Razor. Could you please help me on that.
@grid.GetHtml(columns: grid.Columns(
grid.Column("col1"),
grid.Column("col2"),
grid.Column("col3"),
grid.Column("col4")
))
I am trying to have a for loop
Result String = splitted column names which are concatenated with grid.column
@grid.GetHtml(columns: grid.Columns(
+ ResultString
+ ))
See below examples:
Example 1
View
@{
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))
Example 2
Action
[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();
}
View
@grid.GetHtml(columns: ViewBag.Columns)
Example 3
Model
public class MyModel
{
public List<Column> ColumnList { get; set; }
}
Action
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");
}
View
<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)