【问题标题】:Remove Edit, Update, and Cancel links from a RadGrid从 RadGrid 中删除编辑、更新和取消链接
【发布时间】:2014-09-29 13:44:44
【问题描述】:

我正在尝试删除默认显示在Telerik RadGrid 中的链接。这是我尝试删除编辑链接之前网格的样子:

我找到了这个sn-p的代码,它是用来删除编辑链接的:

if (!IsPostBack)
            {
                foreach (GridItem item in RGV_POI.MasterTableView.Items)
                {
                    if (item is GridEditableItem)
                    {
                        GridEditableItem editableItem = item as GridDataItem;
                        editableItem.Edit = true;


                    }
                }
                RGV_POI.Rebind();
            }

这是网格在代码后的样子:

编辑链接仍然显示在第一个项目上。有没有办法删除 RadGrid 中每个项目的编辑、更新和取消链接?我希望能够使用按钮单击事件删除/禁用链接。然后可以使用按钮单击事件添加/启用链接。

【问题讨论】:

  • 您当前的代码似乎只是使这些行可编辑,而不是删除编辑链接。这就是出现更新/取消的原因。这是故意的吗?
  • @LogicaLINsanity 不,我想让它们不可编辑,但我明白你现在在说什么。即使我将其设置为 false,编辑按钮仍会显示

标签: c# asp.net telerik radgrid rad-controls


【解决方案1】:

我不知道 Telerik RadGrid 控件,但可以肯定该控件应该继承 asp:GridView。您可以使链接在RowDataBound 事件中不可见。在这里你可以怎么做。

在网格视图上添加OnItemDataBound="Grid_ItemDataBound"

在后面的代码中:

    protected void Grid_ItemDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Item.DataItem == null)
            return;

        //cell of all the link button edit/update etc.
        TableCell cell = e.Item.Cells[//index of the column];

        foreach(Control c in cell.Controls)
        {
            c.Visible = false;
        }  
    }

您应该以某种方式检查取消、编辑、更新按钮的 ID。也许你应该提供更多关于aspx中的控件的信息。

编辑:

在他们的文档中使用 OnItemDataBound 事件:http://www.telerik.com/help/aspnet-ajax/events_t_telerik_web_ui_radgrid.html

【讨论】:

  • RadGrids 没有 RowDataBound 事件
  • @nate 在这种情况下尝试使用 ItemDataBound !
  • @nate 我在代码中进行了更改检查它,您应该只看到哪个索引具有控制权。
  • 现在我收到错误“无法解析符号'cell'”
  • @nate man 我打错了...应该是 TableCell cell = e.Item.Cells[//index of the column];,而不是 TableCell cell - e.Item.Cells[/ /列的索引];。更改 - 使用 =。
【解决方案2】:

RadGrid 中的编辑链接按钮实际上是一个列本身,特别是GridEditCommandColumn。为了在单击按钮时显示/隐藏它,您必须在单击事件处理程序中以编程方式基本上重建所有列,根据需要包括或排除GridEditCommandColumn。当以声明方式创建网格的其余部分时,您不能以编程方式添加或删除单个列。如果我们能更多地了解网格是如何在您的应用程序中声明和构建的,那将会很有用。

Creating a RadGrid Programatically

但是,可以更改GridEditCommandColumn.Display 属性。如果您可以获取列本身的句柄,而不是单个单元格,则可以根据需要在按钮单击事件中进行调整。

【讨论】:

  • 好的,我该怎么做。
  • 第一个示例here 展示了如何以编程方式定义列并将数据绑定到它们。他们在 page_Load 事件中这样做。您将不得不在按钮单击事件中执行此操作。
【解决方案3】:

如果您不希望您的项目可编辑,您应该删除 GridEditCommandColumn。另一种选择是通过其 Visible/Display 属性更改其在服务器上的可见性。可以使用网格的 GetColumnSafe(columnName) 方法获取需要的引用:http://www.telerik.com/help/aspnet-ajax/grid-using-getitems-getcolumn-methods.html

要摆脱更新/取消按钮,您可以使用自定义模板,但如果您的网格不可编辑,我不明白为什么需要这样做:http://demos.telerik.com/aspnet-ajax/grid/examples/data-editing/form-template-update/defaultcs.aspx

【讨论】:

  • 我想在 web 表单加载时删除编辑链接,然后在用户需要更改数据时启用它。
  • 您如何知道用户需要更改数据?在服务器上还是在客户端?我们已经展示了如何在服务器上删除/添加这些链接按钮。以下是使用 JavaScript 隐藏列的方法:demos.telerik.com/aspnet-ajax/grid/examples/client/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
  • 2011-05-01
  • 2014-12-31
相关资源
最近更新 更多