Telerik Rad网格视图标题空间

时间:2013-03-07 22:14:35

标签: wpf silverlight telerik telerik-grid

在我们目前的项目中,我们使用telerik rad控件开发silverlight项目, 根据登录用户,列显示在datagrid上,对于某些用户,某些网格列设置为不可见,这导致列之间存在间隙,当用户登录时列之间的空间不看起来不错, 有没有人知道如何解决这个差距,非常感谢。

我们正在使用转换器,

<telerik:GridViewDataColumn DataMemberBinding="{Binding LastQtyNotAvail}" Width="150" IsVisible="{Binding IsColumnVisibleToCustomer, Source={StaticResource PFOViewModel}}" IsReadOnly="True" TextAlignment="Right" HeaderTextAlignment="Center"/> 

public bool IsColumnVisibleToCustomer
 {get
 { 
   return !WebContext.Current.User.IsInRole("Customer");
 }
} public bool IsInRole(string role) { if ((this.Roles == null)) { return false; } return global::System.Linq.Enumerable.Contains(this.Roles, role); 
}

2 个答案:

答案 0 :(得分:0)

我会使用一些jQuery来检查网格中的列数,并根据它设置填充或边距。我的猜测是列仍然没有内容,所以你也可以删除那些使用jQuery。只需检查$(“#column”)。html()==“”

答案 1 :(得分:0)

最好处理RadGridView的AutoGeneratingColumns事件。然后,您可以根据您想象的任何条件取消生成列。

The Telerik documentation will give you as good a sample as I can

如果您不使用自动生成列,请尝试删除(网格中的)已加载事件中的列。

类似的东西:

void Grid_Loaded(object sender, RoutedEventArgs e)
{
    RadGridView grid = sender as RadGridView;
    var remove = ((IEnumerable<GridViewDataColumn>)grid.Columns).FirstOrDefault(o => o.UniqueName == "PropertyName");
    if (remove != null)
    {
        grid.Columns.Remove(remove);
    }
}