【问题标题】:Expand/Collapse Programmatically in Radgrid在 Radgrid 中以编程方式展开/折叠
【发布时间】:2015-05-16 08:55:33
【问题描述】:

我将 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 标志设置为 True 之后,如果我在 QuickWatch 中检查状态值,它仍然保持为 False。有人可以帮我理解为什么该特定行的状态没有改变吗?如果这不是以编程方式更改状态的正确方法,有人可以告诉我另一种方法吗?

【问题讨论】:

    标签: telerik-grid radgrid


    【解决方案1】:

    在设置 Expanded 属性后尝试重新绑定网格,或者只是在 Page_Load 方法中移动条件。只要确保值更改后,有重新绑定或执行 NeedDataSource 方法即可。 希望这些建议对您有所帮助。

    【讨论】:

      【解决方案2】:

      为了解决这个问题,我使用了两个隐藏字段

       <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  */
      

      回复

      【讨论】:

        猜你喜欢
        • 2012-07-01
        • 2015-08-19
        • 2017-05-07
        • 2011-07-06
        • 2014-12-18
        • 1970-01-01
        • 2022-08-15
        • 2018-06-17
        • 2019-11-11
        相关资源
        最近更新 更多