2014-09-29 6 views
2

По умолчанию удаляются ссылки, которые отображаются в Telerik RadGrid. Вот то, что сетка выглядит как прежде, чем я пытаюсь удалить ссылку редактирования:Удалить ссылки Редактировать, Обновить и Отменить ссылки из RadGrid

before I try to remove the edit link

Я нашел этот фрагмент кода, он используется, чтобы удалить ссылку редактирования:

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

Это как сетка выглядит после кода:

how to grid looks after I try the code

ссылка редактирования по-прежнему отображается на первый элемент. Есть ли способ удалить ссылку на редактирование, обновление и отмену для каждого элемента в RadGrid? Я хочу, чтобы удалить/отключить ссылки, используя событие нажатия кнопки. Затем сможете добавлять/активировать ссылки, используя событие нажатия кнопки.

+0

Кажется, что ваш текущий код просто редактирует строки, а не удаляет ссылку редактирования. Именно поэтому появляется обновление/отмена.Это намерение? – LogicaLInsanity

+0

@LogicaLInsanity Нет. Я хотел сделать их неотправляемыми, но я вижу, что вы сейчас говорите. Даже если я установил его в false, кнопка редактирования все равно отображается – nate

ответ

0

Мне не известно о Telerik RadGrid Control, но наверняка элемент управления должен наследовать 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; 
     } 
    } 

Вы должны проверить идентификатор отмены, редактирования, кнопки обновления каким-то образом. Вероятно, вам следует предоставить дополнительную информацию об элементах управления в aspx.

EDIT:

Используйте OnItemDataBound событие это существующие в их документации: http://www.telerik.com/help/aspnet-ajax/events_t_telerik_web_ui_radgrid.html

+0

. Нет события RowDataBound для RadGrids. – nate

+0

@nate попробуйте с ItemDataBound в этом случае! – mybirthname

+0

@nate Я вношу изменения в код, проверяю его, вы должны видеть только, какой индекс имеет элемент управления. – mybirthname

0

Кнопка редактирования ссылку в RadGrid на самом деле сама колонка, конкретно GridEditCommandColumn. Чтобы показать/скрыть это в случае нажатия кнопки, вам нужно будет по существу перестроить все столбцы программно в обработчике событий кликов, включая или исключая GridEditCommandColumn по мере необходимости. Вы не можете добавлять или удалять один столбец программно, когда остальная часть сетки создается декларативно. Было бы полезно, если бы мы могли видеть, как сетка объявляется и строится в вашем приложении.

Creating a RadGrid Programatically

Это может быть возможным, чтобы изменить GridEditCommandColumn.Display свойство, однако. Если вы можете получить дескриптор самого столбца, а не отдельные ячейки, вы можете настроить его по мере необходимости в событиях нажатия кнопки.

+0

Хорошо, как бы я это сделал. – nate

+0

Первый пример [здесь] (http://www.telerik.com/help/aspnet-ajax/grid-programmatic-creation.html) показывает, как определять столбцы программно и связывать данные с ними. Они делают это в событии page_Load. Вы должны были бы сделать это в событиях нажатия кнопки. –

0

Вы должны удалить 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

+0

Я хочу удалить ссылку для редактирования при загрузке веб-формы, а затем включить ее, если пользователю необходимо изменить данные. – nate

+0

Как вы знаете, что пользователь должен изменить данные? На сервере или на клиенте? Мы показали, как удалить/добавить эти кнопки ссылок на сервер. Вот как скрыть столбец с JavaScript: http://demos.telerik.com/aspnet-ajax/grid/examples/client/clientsideapi/defaultcs.aspx – rdmptn