C# 从RadGrid中删除编辑、更新和取消链接

C# 从RadGrid中删除编辑、更新和取消链接,c#,asp.net,telerik,radgrid,rad-controls,C#,Asp.net,Telerik,Radgrid,Rad Controls,我正在尝试删除默认情况下在Telerik RadGrid中显示的链接。以下是我尝试删除编辑链接之前网格的外观: if (!IsPostBack) { foreach (GridItem item in RGV_POI.MasterTableView.Items) { if (item is GridEditableItem) {

我正在尝试删除默认情况下在Telerik RadGrid中显示的链接。以下是我尝试删除编辑链接之前网格的外观:

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

我发现了这段代码,它用于删除编辑链接:

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中每个项目上的编辑、更新和取消链接?我希望能够删除/禁用链接,使用按钮点击事件。然后可以使用按钮单击事件添加/启用链接。

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

在网格视图中添加
OnItemDataBound=“Grid\u 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
事件,它存在于他们的文档中:

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


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

如果不希望项目可编辑,则应删除GridEditCommandColumn。另一个选项是通过其Visible/Display属性更改其在服务器上的可见性。可以使用网格的GetColumnSafe(columnName)方法获取neded引用:


要去掉“更新/取消”按钮,您可以使用自定义模板,尽管我不明白如果网格不可编辑,您为什么需要这样做:

您当前的代码似乎只是使行可编辑,而不是删除“编辑”链接。这就是为什么会显示更新/取消。这就是你的意图吗?@LogicaLInsanity不,我想让它们不可编辑,但我明白你现在说的。即使我将其设置为false,编辑按钮仍会向上显示此处不是的RowDataBound事件RadGrids@nate在这种情况下,请尝试使用ItemDataBound@nate我在代码中做了更改检查,你应该只看到哪个索引有控制权。现在我得到错误“无法解析符号‘cell’”@nate man我输入了一个错误。。。它应该是TableCell cell=e.Item.Cells[//列的索引];,not TableCell cell-e.Item.Cells[//列的索引];。Change-with=。我想在web表单加载时删除编辑链接,然后在用户需要更改数据时启用它。您如何知道用户需要更改数据?在服务器上还是在客户端上?我们已经展示了如何在服务器上删除/添加这些链接按钮。下面是如何用JavaScript隐藏列:好的,我该怎么做。第一个示例演示如何通过编程定义列并将数据绑定到它们。他们在page_Load事件中执行此操作。您必须在按钮单击事件中执行此操作。