ASP.NET MVC 客户端事件
ASP.NET MVC ClientSide Events
我正在尝试学习 MVC,我有 .NET 背景。我有一个带有 devexpress gridview 控件的索引页,我正在尝试添加一个 focusedrowchanges 事件。我的索引页仅包含以下内容
<main style="width:100%">
@Html.Action("GridViewPartial")
</main>
我的Gridviewpartial如下
@{
var grid = Html.DevExpress().GridView(settings =>
{
settings.Name = "GridView";
settings.CallbackRouteValues = new { Controller = "Home", Action = "GridViewPartial" };
settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "Home", Action = "GridViewPartialAddNew" };
settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "Home", Action = "GridViewPartialUpdate" };
settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "Home", Action = "GridViewPartialDelete" };
settings.ClientSideEvents.FocusedRowChanged = "OnRowSelect";
//settings.ClientSideEvents.FocusedRowChanged = "function(s, e) {alert('The button has been clicked');}";
settings.SettingsEditing.Mode = GridViewEditingMode.PopupEditForm;
settings.SettingsBehavior.ConfirmDelete = true;
settings.CommandColumn.Visible = false;
settings.CommandColumn.ShowNewButton = false;
settings.CommandColumn.ShowDeleteButton = false;
settings.CommandColumn.ShowEditButton = false;
settings.KeyFieldName = "id";
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.SettingsAdaptivity.AdaptivityMode = GridViewAdaptivityMode.Off;
settings.SettingsAdaptivity.AdaptiveColumnPosition = GridViewAdaptiveColumnPosition.Left;
settings.SettingsAdaptivity.AdaptiveDetailColumnCount = 1;
settings.SettingsAdaptivity.AllowOnlyOneAdaptiveDetailExpanded = false;
settings.SettingsAdaptivity.HideDataCellsAtWindowInnerWidth = 0;
settings.Columns.Add("reference");
settings.Columns.Add("name");
settings.Columns.Add("description");
});
if (ViewData["EditError"] != null)
{
grid.SetEditErrorText((string)ViewData["EditError"]);
}
}
@grid.Bind(Model).GetHtml()
如您所见,我添加了一个 focusedrowchanges 事件并尝试了 2 种不同的使用方式。我目前正在尝试让它使用 javascript 函数。
<script type="text/javascript">
function OnRowSelect(s, e) {
alert('test');
}
</script>
当我在网格上更改焦点行时似乎没有进入该功能,我不知道这是为什么。我也试过在函数中放置一个断点,但从未命中。有人可以解释我应该如何正确地做到这一点吗?
您的两种方法都可以使用(在我自己的一个项目中尝试过)。
您只是缺少一项设置:settings.SettingsBehavior.AllowFocusedRow = true;
参见 DevExpress demo 也展示了相同的内容。
我正在尝试学习 MVC,我有 .NET 背景。我有一个带有 devexpress gridview 控件的索引页,我正在尝试添加一个 focusedrowchanges 事件。我的索引页仅包含以下内容
<main style="width:100%">
@Html.Action("GridViewPartial")
</main>
我的Gridviewpartial如下
@{
var grid = Html.DevExpress().GridView(settings =>
{
settings.Name = "GridView";
settings.CallbackRouteValues = new { Controller = "Home", Action = "GridViewPartial" };
settings.SettingsEditing.AddNewRowRouteValues = new { Controller = "Home", Action = "GridViewPartialAddNew" };
settings.SettingsEditing.UpdateRowRouteValues = new { Controller = "Home", Action = "GridViewPartialUpdate" };
settings.SettingsEditing.DeleteRowRouteValues = new { Controller = "Home", Action = "GridViewPartialDelete" };
settings.ClientSideEvents.FocusedRowChanged = "OnRowSelect";
//settings.ClientSideEvents.FocusedRowChanged = "function(s, e) {alert('The button has been clicked');}";
settings.SettingsEditing.Mode = GridViewEditingMode.PopupEditForm;
settings.SettingsBehavior.ConfirmDelete = true;
settings.CommandColumn.Visible = false;
settings.CommandColumn.ShowNewButton = false;
settings.CommandColumn.ShowDeleteButton = false;
settings.CommandColumn.ShowEditButton = false;
settings.KeyFieldName = "id";
settings.Width = System.Web.UI.WebControls.Unit.Percentage(100);
settings.SettingsAdaptivity.AdaptivityMode = GridViewAdaptivityMode.Off;
settings.SettingsAdaptivity.AdaptiveColumnPosition = GridViewAdaptiveColumnPosition.Left;
settings.SettingsAdaptivity.AdaptiveDetailColumnCount = 1;
settings.SettingsAdaptivity.AllowOnlyOneAdaptiveDetailExpanded = false;
settings.SettingsAdaptivity.HideDataCellsAtWindowInnerWidth = 0;
settings.Columns.Add("reference");
settings.Columns.Add("name");
settings.Columns.Add("description");
});
if (ViewData["EditError"] != null)
{
grid.SetEditErrorText((string)ViewData["EditError"]);
}
}
@grid.Bind(Model).GetHtml()
如您所见,我添加了一个 focusedrowchanges 事件并尝试了 2 种不同的使用方式。我目前正在尝试让它使用 javascript 函数。
<script type="text/javascript">
function OnRowSelect(s, e) {
alert('test');
}
</script>
当我在网格上更改焦点行时似乎没有进入该功能,我不知道这是为什么。我也试过在函数中放置一个断点,但从未命中。有人可以解释我应该如何正确地做到这一点吗?
您的两种方法都可以使用(在我自己的一个项目中尝试过)。
您只是缺少一项设置:settings.SettingsBehavior.AllowFocusedRow = true;
参见 DevExpress demo 也展示了相同的内容。