首页 文章

Telerik DataGrid:在客户端展开列组

提问于
浏览
0

我觉得我错过了Talerik的RadGrid for ASP.NET Ajax基本功能 .

我有一个包含列组的DataGrid . 一切正常,除了我希望每个组的整个 Headers 是一个扩展/折叠组而不是只是小箭头的链接 .

我已经修改了 Headers 以将其更改为调用javascript函数的链接,但是我无法使用javascript来扩展网格 .

玩了一下后,我有这个为javascript:

function ExpandGroup(index, element)  
{
    $find('LondonGrid').get_masterTableView().get_dataItems()[0].set_expanded(true);
}
  • 这里的索引是组的索引(基于0),它正确传递 .

  • 元素是DOMWindow .

函数中的代码显然是错误的,它的作用就是扩展第一个数据项 . 我想要的是一种查找属于组索引并扩展它们的所有DataItem的方法 . 但我找不到办法做到这一点 .

通过修改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);
    }
}

我是Telerik控件的新手,我的asp.net和javascript非常生疏,所以任何帮助都会受到赞赏 .

编辑:我忘了提到我们正在使用2011 Q2版本 .

1 回答

  • 0

    我发现了一个丑陋的丑陋黑客,它在 Headers 中找到了扩展箭头按钮并单击它 . 虽然非常脆弱,我不能让自己推荐这个作为答案 .

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

相关问题