【问题标题】:Telerik RadgridView - making columns invisible based on criteriaTelerik RadgridView - 根据标准使列不可见
【发布时间】:2020-02-26 19:20:35
【问题描述】:

我正在将标准 ASP.NET Gridviews 转换为 Telerik RadGridViews。对于某些网格来说,这样做的一个重要方面是根据某些标准使某些模板列对用户不可见。这些模板列是旧网格上的 asp:Template (button) 列,并且将是新 RadGridviews 上的 telerik:Gridbutton 列

在旧网格上隐藏按钮的过程是通过 rowDataBound 方法完成的。换句话说,在 RowDataBound 方法中有类似

的代码

如果视图状态变量 = 某个值,则将按钮模板列的启用/可见属性设置为关闭。

由于 RadGridviews 没有 RowDataBound 方法,有没有办法在 RadGridViews 中完成相同的事情,无论是在检索期间还是在检索后?

谢谢

【问题讨论】:

    标签: asp.net telerik


    【解决方案1】:

    PreRenderRadGrid 事件中使用下面的代码 sn-p 来隐藏列

    ASPX

        <telerik:radgrid id="RadGrid1" runat="server" OnPreRender="RadGrid1_PreRender">
        <Columns>
            <telerik:GridButtonColumn UniqueName="btn_column"></telerik:GridButtonColumn>
        </Columns>
        </telerik:RadGrid>
    

    CS

    protected void RadGrid1_PreRender(object sender, EventArgs e) 
    { 
        rgCards.MasterTableView.GetColumn("btn_column").Visible = false;    // set this based on your 'view state variable = some value'
    {
    

    或者,您可以使用OnItemDataBound RadGrid 事件(在项目数据绑定到 RadGrid 控件后触发)来显示/隐藏每一行。

    ASPX

        <telerik:radgrid id="RadGrid1" runat="server" OnItemDataBound="RadGrid1_ItemDataBound">
    

    CS

    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
        if (e.Item is GridDataItem) 
        { 
            GridDataItem item = (GridDataItem)e.Item; 
            item["btn_column"].Visible = false;    // set this based on your 'view state variable = some value'
        } 
    } 
    

    此外,OnItemCreated 事件(在创建 RadGrid 控件中的项目时在服务器上触发)也可以用来实现类似的结果。

    请参阅 Telerik RadGrid 文档以了解深入的功能 - RadGrid Overview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多