2015-03-13 8 views
0

У меня есть RadGrid с GridAttachmentColumn с именем «FileName». Я пытаюсь получить (FindControl) элемент управления из GridDataItem в событии ItemCreated. В частности, я хочу, чтобы кнопка управления (или linkButton в этом случае). item.FindControl ("FileName") всегда возвращает Nothing.Как я могу получить (FindControl) кнопку GridAttachmentColumn в RadGrid

Protected Sub AttachmentsRadGrid_ItemCreated(sender As Object, e As GridItemEventArgs) 
     If TypeOf e.Item Is GridDataItem Then 
      Dim item As GridDataItem = TryCast(e.Item, GridDataItem) 
      If item IsNot Nothing Then 
       Dim FileName = item.FindControl("FileName") 'Always Nothing 
       If FileName IsNot Nothing Then 
        'Do something with it 
       End If 
      End If 
     End If 
    End Sub 

ответ

1
Dim button As LinkButton = TryCast(item("FileName").Controls(0), LinkButton) 

ИЛИ

Dim FileName = item.FindControl("gac_FileName") 

Первая строка кода может быть Telerik's preference поэтому я ставлю эту линию первым. Обратите внимание, что AttachmentColumn в режиме чтения в основном просто кнопка ссылки.

Обратите внимание на второй пример, что «gac_» в item.FindControl («gac_ Имя_файла») добавляется к передней части UniqueName столбца. Я заметил это в Chrome DevTools, когда осмотрел элемент из браузера. Я должен отметить, что «Имя_файла» - это уникальное имя столбца, если вы не хотите читать код выше.

0

метод Безопаснее и предпочтительный метод Telrik является для вызова управления по имени, а не индекс ...

кнопку Dim Как LinkButton = TryCast (пункт ("FileName"). Controls ("gac_FileName"), LinkButton)

+0

У вас есть ссылка на любую документацию, которая поддерживает это? Если да, пожалуйста, поставьте его, потому что я думаю, что он был бы хорошо принят здесь. Мне нравится вызов имени элемента управления, но поддержка Telerik также предложила использовать элемент («FileName»). Элементы управления (0) и образцы в предоставленной мне ссылке также используют их. –

+0

Я не могу предоставить вам ссылку на наши билеты поддержки, вы можете использовать индекс управления или имя, либо будет работать. Преимущество использования имени в том, что вы всегда знаете, что вы ссылаетесь на правильный элемент управления, я также заметил в строке кода, что существует тип Controls (0), должен быть FindControl («gac_Filename») – Damian70

+0

Это линия, которая был обеспечен поддержкой Telerik и находится в их документации, поэтому я решил, что должен включить его также. Я также не видел никакой документации, в которой говорится, что имя элемента управления будет иметь знак «gac_» перед ним. Я согласен с тем, что я предпочитаю чаще называть контроль по имени, но я отложил его до Telerik. –