Telerik DataGrid:在客户端扩展列组



我觉得我错过了一些基本的Talerik的RadGrid for ASP。净Ajax .

我有一个具有列组的DataGrid。一切都很好,除了我想让每个组的整个头部都是一个扩展/折叠组的链接,而不仅仅是一个小箭头。

我已经修改了标题,将其更改为调用javascript函数的链接,但是我无法获得javascript的权利来扩展网格。

在玩了一会儿之后,我有了这个javascript:

function ExpandGroup(index, element)  
{
    $find('LondonGrid').get_masterTableView().get_dataItems()[0].set_expanded(true);
}  
  • Index这里是组的索引(从0开始),它通过了通过正确。
  • 元素是DOMWindow。

函数中的代码显然是错误的,它所做的只是展开第一个数据项。我想要的是找到属于组索引的所有DataItems并展开它们的方法。但是我找不到一个方法去做。

标题中的链接是通过修改ItemDataBound事件处理程序添加的:

protected void LondonGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
    var headerItem = e.Item as GridGroupHeaderItem;
    if (headerItem != null)
    {
        string html = string.Format("<a href='javascript:ExpandGroup({0}, this)'>{1}</a>",
                                    headerItem.GroupIndex,
                                    headerItem.DataCell.Text);
        var control = new LiteralControl(html);
        headerItem.DataCell.Controls.Add(control);
    }
}

我是teleerik控件的新手,我的asp.net和javascript都很生疏,所以任何帮助都会很感激。

编辑:我忘了说我们使用的是2011年第二季度的版本。

我发现了一个丑陋的hack,在标题中找到扩展箭头按钮并单击它。虽然很脆弱,但我不能让自己推荐这个作为答案。

function ExpandGroup(element) {
   element.parentElement.parentElement.parentElement.children[0].children[0].click();
}  

最新更新