2016-06-30 2 views
0

У меня есть Telerik Radgrid. Я хочу отключить столбцы гиперссылки при событии загрузки страницы, когда конкретное условие истинно. Я получаю идентификатор роли из базы данных и на основе идентификатора роли хочу отключить столбцы гиперссылок при событии загрузки страницы. мой код здесьКак отключить столбец гиперссылки Telerik radgrid, когда выполняется конкретное условие

if(RoleId==3) 
{ 
btnsave.Enabled= false; 

    foreach(griddataitem item in RagGrid1.Items) 
    { 
    HyperLink edit = (hyperlink)item["EditHyperLinkColumn"].Controls[0]; 
    edit.Enabled = false; 
    } 
}  

при загрузке страницы она получает идентификатор роли, но не пошла в заявлении Еогеаспа. Пожалуйста, помогите.почтам заранее ...

ответ

0

Вам нужно получить предметы в MasterTableView. Кроме того, проверьте уникальное имя столбца гиперссылки. Это на самом деле «EditHyperLinkColumn»?

if(RoleID == 3) 
{ 
    btnsave.Enabled = false; 
    foreach(GridDataItem item in RadGrid1.MasterTableView.Items) 
    { 
     HyperLink edit = (HyperLink)item["EditHyperLinkColumn"].Controls[0]; 
     edit.Enabled = false; 
    } 
} 
2

Куда вы отправили свою петлю foreach? В методе Page_Load? Это может не сработать, потому что RadGrid имеет свой собственный жизненный цикл, и события происходят в определенной последовательности.

Вместо этого вы можете применить свое условие к событию ItemDataBound.

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
     var item = (GridDataItem)e.Item; 
     var editlink = item.FindControl("EditHyperLinkColumn") as HyperLink; 
     if (editlink != null) 
     { 
      editlink.Enabled = false; 
     } 
    } 
} 
Смежные вопросы