Trying to compute total based on gridview items

Please support our ASP.NET advertiser: Intel Parallel Studio Home
Reply

Join Date: Dec 2008
Posts: 19
Reputation: dfs3000my is an unknown quantity at this point 
Solved Threads: 0
dfs3000my dfs3000my is offline Offline
Newbie Poster

Trying to compute total based on gridview items

 
0
  #1
20 Days Ago
Hi,

I'm actually trying to compute the total for my individual gridview items but I am reaching the dead end at the moment.

I had an idea that probably I can specify another datasource for my total computation but was told that gridviews may only be bound to one datasource at a time.

My second idea simply tells me that, do I have to compute the total in the SQL statements itself as my SQL is already pretty complicated. Attached is how the gridview looks like and what I am trying to accomplish.

I hope someone could actually guide me through this process. Thanks in advance

Below is my ASP code:
  1. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="5" ForeColor="Black" GridLines="Horizontal">
  2. <Columns>
  3. <asp:TemplateField>
  4. <ItemTemplate>
  5. <%# Container.DataItemIndex + 1 %>
  6. </ItemTemplate>
  7. </asp:TemplateField>
  8. <asp:BoundField DataField="student_name" HeaderText="Name" SortExpression="student_name" />
  9. <asp:BoundField DataField="student_number" HeaderText="Student ID" SortExpression="student_number" />
  10. <asp:BoundField DataField="student_email" HeaderText="Student Email" SortExpression="student_email" />
  11. <asp:BoundField DataField="course_name" HeaderText="Course" SortExpression="course_name" />
  12.  
  13. </Columns>
  14. <FooterStyle BackColor="#CCCCCC" />
  15. <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
  16. <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
  17. <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
  18. <AlternatingRowStyle BackColor="#CCCCCC" />
  19. </asp:GridView>
  20. <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:markingConnectionString %>"
  21. SelectCommand="SELECT subject_id, student_id, student_name, student_number, student_email, course_name,
  22. Max((CASE WHEN RowNumber = 1 THEN total ELSE '' END)) AS hurdle1,
  23. Max((CASE WHEN RowNumber = 2 THEN total ELSE '' END)) AS hurdle2,
  24. Max((CASE WHEN RowNumber = 3 THEN total ELSE '' END)) AS hurdle3,
  25. Max((CASE WHEN RowNumber = 4 THEN total ELSE '' END)) AS hurdle4,
  26. Max((CASE WHEN RowNumber = 5 THEN total ELSE '' END)) AS hurdle5
  27. FROM (SELECT Student.student_id, Student.student_name, Student.student_number, Course.course_name, Student.student_email, Subject.subject_id,
  28. ROW_NUMBER() OVER (PARTITION BY Student.student_id
  29. ORDER BY Student.student_id) AS RowNumber, SUM(Marks.marks_value) * Hurdle.hurdle_weight / 100 AS total
  30. FROM Marks INNER JOIN
  31. Student ON Marks.student_id = Student.student_id INNER JOIN
  32. Class ON Student.student_id = Class.student_id INNER JOIN
  33. Subject ON Class.subject_id = Subject.subject_id INNER JOIN
  34. Course ON Student.course_id = Course.course_id INNER JOIN
  35. MarkingCriteria ON Marks.criteria_id = MarkingCriteria.criteria_id INNER JOIN
  36. AssessmentComponent ON MarkingCriteria.component_id = AssessmentComponent.component_id INNER JOIN
  37. Hurdle ON AssessmentComponent.hurdle_id = Hurdle.hurdle_id
  38. GROUP BY Hurdle.hurdle_id, Hurdle.hurdle_weight, Student.student_id, Student.student_name, Student.student_number, Student.student_email,
  39. Course.course_name, Subject.subject_id) AS derive
  40. GROUP BY subject_id, student_id, student_name, student_number, student_email, course_name" FilterExpression="subject_id = '{0}'">
  41. <FilterParameters>
  42. <asp:ControlParameter Name="Subject" ControlID="dropdown_subjectCode" PropertyName="SelectedValue" />
  43. </FilterParameters>
  44. </asp:SqlDataSource>


Below is my code-behind file:
  1.  
  2. string selectedValue = dropdown_subjectCode.SelectedValue.ToString();
  3. GridView1.Columns.Clear();
  4.  
  5. GridView1.DataBind();
  6.  
  7. BoundField boundField = new BoundField();
  8. boundField.DataField = "student_name";
  9. boundField.HeaderText = "Name";
  10. GridView1.Columns.Add(boundField);
  11.  
  12. boundField = new BoundField();
  13. boundField.DataField = "student_number";
  14. boundField.HeaderText = "Student ID";
  15. GridView1.Columns.Add(boundField);
  16.  
  17. boundField = new BoundField();
  18. boundField.DataField = "student_email";
  19. boundField.HeaderText = "Student Email";
  20. GridView1.Columns.Add(boundField);
  21.  
  22. boundField = new BoundField();
  23. boundField.DataField = "course_name";
  24. boundField.HeaderText = "Course";
  25. GridView1.Columns.Add(boundField);
  26.  
  27. for (int i = 0; i < db.getHurdleCount(dropdown_subjectCode.SelectedValue.ToString()); i++)
  28. {
  29. BoundField bf = new BoundField();
  30. string hurdleField = "hurdle" + (i + 1);
  31. bf.DataField = hurdleField;
  32. bf.HeaderText = "Hurdle " + (i + 1) + " Marks";
  33. GridView1.Columns.Add(bf);
  34. }
  35.  
  36. if (db.getHurdleCount(dropdown_subjectCode.SelectedValue.ToString()) > 0)
  37. {
  38. BoundField bf = new BoundField();
  39. bf.DataField = "";
  40. bf.HeaderText = "Total Marks";
  41. GridView1.Columns.Add(bf);
  42.  
  43. bf = new BoundField();
  44. bf.DataField = "";
  45. bf.HeaderText = "Grade";
  46. GridView1.Columns.Add(bf);
  47. }
Attached Thumbnails
smtg.PNG  
Reply With Quote Quick reply to this message  
Join Date: Jul 2009
Posts: 16
Reputation: mIssy_ricco is an unknown quantity at this point 
Solved Threads: 1
mIssy_ricco mIssy_ricco is offline Offline
Newbie Poster
 
0
  #2
18 Days Ago
if you are trying to sum up a whole column, u have to use a for loop of GridView.Rows.Count
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 2,555
Reputation: adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of adatapost has much to be proud of 
Solved Threads: 454
Moderator
adatapost's Avatar
adatapost adatapost is offline Offline
Posting Maven
 
0
  #3
18 Days Ago
Failure is not fatal, but failure to change might be. - John Wooden
Reply With Quote Quick reply to this message  
Reply

Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC