2015-05-16 4 views
0

Я использую RadGrid с вложенной иерархией основных/подробных таблиц. Я хочу развернуть мастер-строку, когда в таблице «Таблица» внутри строки указано несколько строк. Я пытаюсь добиться того же с помощью кода нижеРазвернуть/свернуть программно в Radgrid

Private Sub RadGrid_ItemDataBound(ByVal sender As System.Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles dbgView.ItemDataBound 
    If <considtion to check if row is expanded>Then 
     e.Item.Expanded = True 
    End If 

Однако даже после установки Expanded флага как Правда, если я проверить значение государства в QuickWatch, она по-прежнему остается Ложной. Может кто-нибудь помочь мне понять, почему состояние для этой конкретной строки не меняется? Если это неправильный способ изменения состояния программно, может ли кто-нибудь дать мне знать альтернативный способ?

ответ

0

Попробуйте перестроить сетку после установки свойства Expanded или просто переместите условие в методе Page_Load. Просто убедитесь, что после изменения значения происходит повторная переделка или выполняется метод NeedDataSource. Надеюсь, что эти предложения помогут.

0

Для решения этого вопроса, я использовал два скрытых поля

<asp:HiddenField ID="hdnExpandCollapse" Value="0" runat="server" /> 

<asp:HiddenField ID="hdnExpanded" Value="0" runat="server" /> 

Тогда следующие два события сетки используется для фиксации состояния элемента сетки

 /* Start functions used for collapse the grid */ 
    protected void Grid_PreRender(object sender, EventArgs e) 
    { 
     int i = 0; 
     foreach (GridDataItem item in Grid.MasterTableView.Items) 
     { 
      GridTableView DetailsTable = (GridTableView)item.OwnerTableView; 

      System.Collections.Hashtable ht = DetailsTable.DataKeyValues[i]; 


      string strDataKey= ht["DataKey"].ToString(); 
      if (strDataKey == hdnExpandCollapse.Value) 
       { 
        if (hdnExpanded.Value == strDataKey) 
        { 
         item.Expanded = false; 
         hdnExpanded.Value = "0"; 
        } 
        else 
        { 
         item.Expanded = true; 

         hdnExpanded.Value = strDataKey; 
        } 

       } 

       i++; 
     } 
    } 


    protected void Grid_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) 
    { 
     if (e.CommandName == RadGrid.ExpandCollapseCommandName) 
     { 
      hdnExpandCollapse.Value = ((EntityClass)(e.Item.DataItem)).DataKey.ToString(); 

     } 
    } 
    /* End functions used for collapse the grid */ 

Ответить

 Смежные вопросы

  • Нет связанных вопросов^_^