У меня есть GridView, который показывает общее количество участников в каждом тесте для каждого подразделения в моей компании.Теперь я хочу суммировать эти числа и добавить новую строку для отображения общего количества участников во всех подразделениях после каждого теста (т. Е. Иметь промежуточный итог на каждый тест). Так как это сделать?
Мой код ASP.NET:
<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource6" CssClass="datatable"
CellPadding="0" BorderWidth="0px" GridLines="None"
OnDataBinding="GridView3_DataBinding" OnRowDataBound="GridView3_RowDataBound" AllowPaging="True" PageSize="16">
<Columns>
<asp:BoundField DataField="Title" HeaderText="Quiz"
SortExpression="Title" />
<asp:BoundField DataField="DivisionShortcut"
HeaderText="Division"
SortExpression="DivisionShortcut" />
<asp:BoundField DataField="Total Number of Participants"
HeaderText="Total Number of Participants" ReadOnly="True"
SortExpression="Total Number of Participants"/>
</Columns>
<RowStyle CssClass="row" />
<SortedAscendingCellStyle CssClass="sortasc"></SortedAscendingCellStyle>
<SortedAscendingHeaderStyle CssClass="sortasc"></SortedAscendingHeaderStyle>
<SortedDescendingHeaderStyle CssClass="sortdesc"></SortedDescendingHeaderStyle>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource6" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT dbo.Quiz.Title, dbo.Divisions.DivisionShortcut, COUNT(DISTINCT dbo.UserQuiz.Username) AS [Total Number of Participants]
FROM dbo.employee INNER JOIN
dbo.UserQuiz ON dbo.employee.Username = dbo.UserQuiz.Username INNER JOIN
dbo.Quiz ON dbo.UserQuiz.QuizID = dbo.Quiz.QuizID INNER JOIN
dbo.Divisions ON dbo.employee.DivisionCode = dbo.Divisions.SapCode
GROUP BY dbo.Quiz.Title, dbo.Divisions.DivisionShortcut
ORDER BY dbo.Quiz.Title"></asp:SqlDataSource>
Мой код позади:
protected void GridView3_DataBinding(object sender, EventArgs e)
{
GridViewGroup first = new GridViewGroup(GridView3, null, "Title");
}
protected void GridView3_RowDataBound(object sender, GridViewRowEventArgs e)
{
//for adding a spearator between rows
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowIndex % 7) == 0)
{
foreach (TableCell c in e.Row.Cells)
c.Attributes.Add("Style", "border-top: #BBD9EE 5px double ");
}
}
}
Снимок длятекущая таблица: 