如何从 Syncfusion MVC 网格中的选定行获取列值
How to get column value from selected row from Syncfusion MVC Grid
Im 我的应用程序 ASP.NET MVC 5 im 使用 Syncfusion 控件。
这是我的观点:
@using Reporter.Models
@model List<UsersListViewModel>
@(Html.EJ().Grid<object>("FlatGrid")
.Datasource(Model)
.AllowFiltering()
.FilterSettings(d => d.FilterType(FilterType.Menu))
.AllowSorting()
.ToolbarSettings(toolBar => toolBar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.ExcelExport);
}))
.Columns(col =>
{
col.Field("OrderNumber").HeaderText("Lp.").TextAlign(TextAlign.Left).Width(15).AllowFiltering(false).Add();
col.Field("UserName").HeaderText("Nazwa użytkownika").Width(50).Add();
col.Field("CanReadReports").HeaderText("Dostęp do raportów").Width(40).AllowSorting(false).HeaderTextAlign(TextAlign.Center).Add();
col.Field("IsAdministrator").HeaderText("Administrator").Width(40).AllowSorting(false).Add();
})
.Mappers(map => map.ExportToExcelAction("Account/UserListExportToExcel"))
.AllowSelection()
.SelectionType(SelectionType.Single)
)
<hr/>
<p style="text-align: justify">
@Html.ActionLink("Nowy użytkownik", "Register", "Account",
null,
new { @class = "btn btn-default" }
)
@Html.ActionLink("Usuń użytkownika", "Register", "Account",
new {user = "UserNameToRaplace"}, //here i want UserName from selected row
new { @class = "btn btn-default" }
)
@Html.ActionLink("Zmień hasło", "Manage", "Account",
new { user = "UserNameToRaplace"},
new { @class = "btn btn-default" }
)
</p>
我的问题是如何从选定的行中获取用户名并将其粘贴到 ActionLink 中。
在网格定义中添加
.ClientSideEvents(evt => evt.RowSelected("onRowSelected"))
并添加javascript功能
<script>
function onRowSelected(args) {
var result = this.getSelectedRecords();
var userName = result[0].UserName;
var deleteUserLink = $("#DeleteUser").attr('href');
var changePassUserLink = $('#ChangePass').attr('href');
var newDeleteUserLink = deleteUserLink.replace("UserNameToRaplace", userName);
var newChangePassUserLink = changePassUserLink.replace("UserNameToRaplace", userName);
var deleteUserLink = $("#DeleteUser").attr('href', newDeleteUserLink);
var changePassUserLink = $('#ChangePass').attr('href', newChangePassUserLink);
};
</script>
您可以在getSelectedRecords
方法中获取选中的信息。但是当在网格中启用 multi-selection 时,它将 return 所有选定的记录。
因此,要获取当前选定的行数据,您可以简单地从 rowSelected
事件的 arguments
访问它。
function onRowSelected(args) {
var userName = args.data.UserName;
//Do something.
};
参考链接:http://help.syncfusion.com/js/api/ejgrid#events:rowselected
Im 我的应用程序 ASP.NET MVC 5 im 使用 Syncfusion 控件。
这是我的观点:
@using Reporter.Models
@model List<UsersListViewModel>
@(Html.EJ().Grid<object>("FlatGrid")
.Datasource(Model)
.AllowFiltering()
.FilterSettings(d => d.FilterType(FilterType.Menu))
.AllowSorting()
.ToolbarSettings(toolBar => toolBar.ShowToolbar().ToolbarItems(items =>
{
items.AddTool(ToolBarItems.ExcelExport);
}))
.Columns(col =>
{
col.Field("OrderNumber").HeaderText("Lp.").TextAlign(TextAlign.Left).Width(15).AllowFiltering(false).Add();
col.Field("UserName").HeaderText("Nazwa użytkownika").Width(50).Add();
col.Field("CanReadReports").HeaderText("Dostęp do raportów").Width(40).AllowSorting(false).HeaderTextAlign(TextAlign.Center).Add();
col.Field("IsAdministrator").HeaderText("Administrator").Width(40).AllowSorting(false).Add();
})
.Mappers(map => map.ExportToExcelAction("Account/UserListExportToExcel"))
.AllowSelection()
.SelectionType(SelectionType.Single)
)
<hr/>
<p style="text-align: justify">
@Html.ActionLink("Nowy użytkownik", "Register", "Account",
null,
new { @class = "btn btn-default" }
)
@Html.ActionLink("Usuń użytkownika", "Register", "Account",
new {user = "UserNameToRaplace"}, //here i want UserName from selected row
new { @class = "btn btn-default" }
)
@Html.ActionLink("Zmień hasło", "Manage", "Account",
new { user = "UserNameToRaplace"},
new { @class = "btn btn-default" }
)
</p>
我的问题是如何从选定的行中获取用户名并将其粘贴到 ActionLink 中。
在网格定义中添加
.ClientSideEvents(evt => evt.RowSelected("onRowSelected"))
并添加javascript功能
<script>
function onRowSelected(args) {
var result = this.getSelectedRecords();
var userName = result[0].UserName;
var deleteUserLink = $("#DeleteUser").attr('href');
var changePassUserLink = $('#ChangePass').attr('href');
var newDeleteUserLink = deleteUserLink.replace("UserNameToRaplace", userName);
var newChangePassUserLink = changePassUserLink.replace("UserNameToRaplace", userName);
var deleteUserLink = $("#DeleteUser").attr('href', newDeleteUserLink);
var changePassUserLink = $('#ChangePass').attr('href', newChangePassUserLink);
};
</script>
您可以在getSelectedRecords
方法中获取选中的信息。但是当在网格中启用 multi-selection 时,它将 return 所有选定的记录。
因此,要获取当前选定的行数据,您可以简单地从 rowSelected
事件的 arguments
访问它。
function onRowSelected(args) {
var userName = args.data.UserName;
//Do something.
};
参考链接:http://help.syncfusion.com/js/api/ejgrid#events:rowselected