在Radgrid中以编程方式展开/折叠

时间:2015-05-16 08:55:34

标签: telerik-grid 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标志设置为True,如果我在QuickWatch中检查状态的值,它仍然保持为False。有人可以帮助我理解为什么特定行的状态没有改变?如果这不是以编程方式更改状态的正确方法,有人可以让我知道其他方式吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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  */

回复