使用 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 时,可能应该以不同的方式进行。我发现了一些使用 InitLoad 项的提示。但是,我不确定该怎么做。

我找到方法了。如果你知道更好的方法,我会采纳你的回答:

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;
        }
    }
}