【问题标题】:How to get column value from selected row from Syncfusion MVC Grid如何从 Syncfusion MVC Grid 中的选定行中获取列值
【发布时间】:2016-01-23 22:39:42
【问题描述】:

我的应用程序 ASP.NET MVC 5 我正在使用 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 中。

【问题讨论】:

    标签: javascript asp.net-mvc syncfusion


    【解决方案1】:

    您可以在getSelectedRecords方法中获取选中的信息。但是当网格中启用多选时,它将返回所有选定的记录。

    所以要获取当前选中的行数据,只需从rowSelected事件的arguments访问即可。

    function onRowSelected(args) {
        var userName = args.data.UserName;
    
        //Do something.
    };
    

    参考链接:http://help.syncfusion.com/js/api/ejgrid#events:rowselected

    【讨论】:

      【解决方案2】:

      在网格定义中添加

      .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>
      

      【讨论】:

        猜你喜欢
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-05
        • 2023-03-04
        • 2017-08-14
        • 1970-01-01
        相关资源
        最近更新 更多