使用 ShowNewButtonInHeader 时如何有条件地隐藏新建按钮?
How to hide conditionally the New button when ShowNewButtonInHeader is used?
总结: 我只需要为具有该角色的用户显示“新建”按钮(此处为 经理)。当新按钮放在命令栏header时,我不知道该怎么做。
详情: 我正在使用 DevExpress 14.2。当 ASPxGridView
中的新建按钮在该行的命令列中使用时,我可以将其隐藏在 CommandButtonInitialize 事件处理程序中:
protected void gv_CommandButtonInitialize(object sender, ASPxGridViewCommandButtonEventArgs e)
{
ASPxGridView grid = sender as ASPxGridView;
switch (e.ButtonType)
{
case ColumnCommandButtonType.New:
e.Visible = Page.User.IsInRole("manager");
break;
...
}
但是,当 属性 ShowNewButtonInHeader
设置为 true 时,可能应该以不同的方式进行。我发现了一些使用 Init
或 Load
项的提示。但是,我不确定该怎么做。
我找到方法了。如果你知道更好的方法,我会采纳你的回答:
protected void gv_Init(object sender, EventArgs e)
{
ASPxGridView grid = sender as ASPxGridView;
foreach (GridViewColumn col in grid.Columns)
{
if (col is GridViewCommandColumn && !Page.User.IsInRole("manager"))
{
(col as GridViewCommandColumn).ShowNewButtonInHeader = false;
break;
}
}
}
总结: 我只需要为具有该角色的用户显示“新建”按钮(此处为 经理)。当新按钮放在命令栏header时,我不知道该怎么做。
详情: 我正在使用 DevExpress 14.2。当 ASPxGridView
中的新建按钮在该行的命令列中使用时,我可以将其隐藏在 CommandButtonInitialize 事件处理程序中:
protected void gv_CommandButtonInitialize(object sender, ASPxGridViewCommandButtonEventArgs e)
{
ASPxGridView grid = sender as ASPxGridView;
switch (e.ButtonType)
{
case ColumnCommandButtonType.New:
e.Visible = Page.User.IsInRole("manager");
break;
...
}
但是,当 属性 ShowNewButtonInHeader
设置为 true 时,可能应该以不同的方式进行。我发现了一些使用 Init
或 Load
项的提示。但是,我不确定该怎么做。
我找到方法了。如果你知道更好的方法,我会采纳你的回答:
protected void gv_Init(object sender, EventArgs e)
{
ASPxGridView grid = sender as ASPxGridView;
foreach (GridViewColumn col in grid.Columns)
{
if (col is GridViewCommandColumn && !Page.User.IsInRole("manager"))
{
(col as GridViewCommandColumn).ShowNewButtonInHeader = false;
break;
}
}
}