Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Telerik RadGrid中的计算单元';s GridGroupFooter项目_Asp.net_Telerik_Radgrid - Fatal编程技术网

Asp.net Telerik RadGrid中的计算单元';s GridGroupFooter项目

Asp.net Telerik RadGrid中的计算单元';s GridGroupFooter项目,asp.net,telerik,radgrid,Asp.net,Telerik,Radgrid,我正在用数据表(System.data.DataTable)中的数据填充Telerik RadGrid。因为我支持其他人的应用程序,所以我不能使用任何其他数据源或显示控件 在我的网格中,我有三列:假设它们是生成的小部件(A列)、错误的小部件(B列)和错误比例(C列)。数据库查询为我提供了这些,并进行计算C=B/A 我在网格底部有一个总计行(TelerikGridFooterItem)。在A列和B列中,Telerik为我计算这些列的总数。我们无法仅从C列计算C列“总计”的正确值:我们必须用(B之和

我正在用数据表(
System.data.DataTable
)中的数据填充Telerik RadGrid。因为我支持其他人的应用程序,所以我不能使用任何其他数据源或显示控件

在我的网格中,我有三列:假设它们是生成的小部件(A列)、错误的小部件(B列)和错误比例(C列)。数据库查询为我提供了这些,并进行计算C=B/A

我在网格底部有一个总计行(Telerik
GridFooterItem
)。在A列和B列中,Telerik为我计算这些列的总数。我们无法仅从C列计算C列“总计”的正确值:我们必须用(B之和)/(A之和)填充它

我通过处理RadGrid的
DataBound
事件并手动填充页脚中的单元格来实现这一点。(我必须在
itemscreated
事件中捕获
GridFooterItem
,然后在
DataBound
事件中输入值,在它为我自动计算了A和B的总数之后。)这感觉很不对劲-也许有更好的方法

无论如何,重要的是:

我的网格被分成多个组,因此我还需要填充
GridGroupFooterItem
s中的C列。在这种情况下,我无法使用我的黑客技术:我正在使用
myGridFooterItem[“WidgetsProduced”]
找到我想要的页脚单元格,但我无法使用
myGridGroupFooterItem[“WidgetsProduced”]
找到组页脚单元格-它只是不是一本字典

我尝试过使用
myGridGroupFooterItem.Cells[]
,但是这个
TableCellCollection
包含的单元格比我预期的要多,所以通过整数索引访问它们感觉有点不方便(特别是因为这是一个用户定义的报告,所以列可以是任意顺序)


那么:我如何用我的计算填充这些单元格呢?

好吧,如果您使用自定义公式来计算结果,而不是像总和、平均值等标准聚合,那么您可能必须依赖您自己的逻辑。组页脚中的单元格应该可以通过唯一的名称进行索引-我记得以前的Telerik ASP.NET网格版本不支持这一点,但这是在较新的版本中添加的-2009年第2季度或第3季度


Dick

您的项目数据绑定事件看起来像

grd_ItemDataBound(object sender,GridItemEventArgs e)
{
//catch the footer element
if(e.Item.ItemType==GridItemType.GroupFooter)
{
    (e.Item.FindControl("yourTextBox") as TextBox).Text = your calculated value
}


}

我仔细检查了unique name indexer是否适用于2009年第2季度和2009年第3季度版本的RadGrid for ASP.NET AJAX,它在我的机器上运行正常。检查您的版本,如果需要,请使用获取更多帮助

迪克试试这个

在Aspx页面中:

<telerik:GridBoundColumn Aggregate="Sum" DataField="Price" DataFormatString="{0:C}" EmptyDataText="0" FooterText="Total :" HeaderText="Price" UniqueName="Price"> ...
Private Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound       
    Dim Item As GridDataItem
    Dim value as Double
    Select Case (e.Item.ItemType)
    Case Telerik.Web.UI.GridItemType.AlternatingItem, Telerik.Web.UI.GridItemType.EditItem,Telerik.Web.UI.GridItemType.Item,Telerik.Web.UI.GridItemType.SelectedItem

        Item = e.Item
    '------ Calculate Total  amount -----------
        Item("TotalPayment").Text = CDbl(Item("TotalPayment").Text) 
        value += CDec(Item("TotalPayment").Text)

    Case Telerik.Web.UI.GridItemType.Footer
        '------ Display the total  amount in Footer ------
        Dim footerItem As GridFooterItem = e.Item
        If Not RadGrid1.Items.Count = 0 Then footerItem("TotalPayment").Text = "Total :" + value
    End Select
End Sub

嗯,不知道为什么-1。你能解释一下吗?@Ram-否决投票的提示是“这个答案没有用”,我想这是对这个答案的描述。在我的问题中,我说过使用UniqueName作为索引访问组页脚单元格不起作用。也许这在以后的版本中是固定的,但不幸的是,这对我没有帮助。我如何将文本框(或文字,最好是)放入该单元格?您可以在网格中使用页脚模板:当然,在啊中的示例!我的网格是动态生成的,因此我必须弄清楚如何以编程方式创建模板,但这似乎是一种方法。谢谢。谢谢-是的,看起来我是在2008年第二季度。我看看能不能弄到一个新版本。