javascript - Asp.net 在 gridview 页脚中显示列总数

标签 javascript asp.net vb.net gridview

我有一个上传 Excel 文件的程序。上传后,excel文件的值将传输到gridview中。

我想要做的是获取每列的总值(value)并将其放置在页脚中。有人可以帮助我吗?谢谢。

这是我到目前为止所拥有的。

 Protected Sub Button1_Click(sender As Object, e As System.EventArgs)Handles Button1.Click
        Dim fl As String = FileUpload1.PostedFile.FileName
        GridView1.DataSource = OpenExcelFile(fl)
        GridView1.DataBind()
        savetoDB(OpenExcelFile(fl))
 End Sub

Protected Function OpenExcelFile(ByVal fileName As String) As Object
    Dim dataTable As New System.Data.DataTable()
    Dim exl As String = FileUpload1.PostedFile.FileName
    Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & exl & ";Extended Properties=" & """Excel 12.0 Xml;HDR=YES;"""
    Dim adapter As New OleDbDataAdapter("SELECT [NAME],[FIL],[ENG],[SCI],[MTH]", connectionString)
    adapter.Fill(dataTable)
    Return dataTable
End Function

Protected Sub savetoDB(dt As System.Data.DataTable)
    Dim cmd As New SqlCommand
    Dim con As New SqlConnection("myconnectionhere")
    Dim dt2 As New System.Data.DataTable
    dt2 = OpenExcelFile(FileUpload1.PostedFile.FileName)

    Using bulk As SqlBulkCopy = New SqlBulkCopy(con)
        bulk.DestinationTableName = "studnt_table"
        bulk.ColumnMappings.Add("[NAME]", "st_name")
        bulk.ColumnMappings.Add("[FIL]", "sbj_fil")
        bulk.ColumnMappings.Add("[ENG]", "sbj_eng")
        bulk.ColumnMappings.Add("[SCI]", "sbj_sci")
        bulk.ColumnMappings.Add("[MTH]", "sbj_mth")
        con.Open()
        bulk.WriteToServer(dt2)
        con.Close()
        con.Close()
    End Using
End Sub

这是我的前端

这是我想要实现的示例布局。我想获取行中列的总和并在页脚中显示总计。有谁知道我怎样才能实现这一目标?任何帮助将非常感激。谢谢/

enter image description here

最佳答案

试试这个。我只添加了 1 列的示例来了解一下。在 adataapter.Fill(dataTable) 之后扩展 OpenExcelFile IsNull Check

adatapter.Fill(dataTable)
Dim sumRow As DataRow
Dim Col1Tot,Col2Tot,Col3Tot,Col4Tot As Decimal 

For Each row1 As DataRow In dataTable.Rows  
   If Not row1.IsNull("FIL") Then 
     Col1Tot =  Col1Tot + Convert.toDecimal(row1("FIL"))
   End If 
   If Not row1.IsNull("ENG") Then 
     Col2Tot =  Col2Tot + Convert.toDecimal(row1("ENG"))
   End If 
   If Not row1.IsNull("SCI") Then 
     Col3Tot =  Col3Tot + Convert.toDecimal(row1("SCI"))
   End If   
   If Not row1.IsNull("MTH") Then 
     Col4Tot =  Col4Tot + Convert.toDecimal(row1("MTH"))
   End If 
Next row1

'Do the remaining columns in same way   
'Finally add it to the Datatable as a new row
sumRow =  dataTable.NewRow()
sumRow("FIL") = Col1Tot 
dataTable.Rows.Add(sumRow)

sumRow =  dataTable.NewRow()
sumRow("ENG") = Col2Tot 
dataTable.Rows.Add(sumRow)

sumRow =  dataTable.NewRow()
sumRow("SCI") = Col3Tot 
dataTable.Rows.Add(sumRow)

sumRow =  dataTable.NewRow()
sumRow("MTH") = Col4Tot 
dataTable.Rows.Add(sumRow)

return dataTable;

让我们知道您的发现。

关于javascript - Asp.net 在 gridview 页脚中显示列总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40274153/

相关文章:

javascript - 网格加载数据后将行列文本设为粗体

javascript - Bootstrap 轮播 - 将 <video> 垂直对齐在 div 中间

asp.net - FormsAuthenticationTicket 不存储用户数据

asp.net - 无法在 Web 服务器上启动调试。启动的 URL 的 IIS 工作进程当前未运行

vb.net - 我的应用程序不会终止

javascript - 使用 Javascript 从文件加载图像

asp.net - 为什么 HtmlHelper.GetUnobtrusiveValidationAttributes 调用时会删除属性?

vb.net - 获取当前日期和时间

vb.net - VB.NET中标识符周围的方括号表示什么?

javascript - 当图像宽度与视口(viewport)宽度不成比例时响应图像?