Hazel Mahmud

Hazel Mahmud

  • 1.4k
  • 315
  • 70k

apply alternative style for gridview merge rows

May 28 2021 4:35 PM
Hello..
 
can anyone help me to apply alternative style for gridview merge rows..TQ.
 
Below is my Javascript and my aspx.cs code
  1. <script type="text/javascript" lang="javascript">  
  2. var tblId = document.getElementById('<%=gvUpdateDate.ClientID%>');  
  3. var rows = tblId.getElementsByTagName("tr");  
  4. var clsName = '';  
  5. var str = '';  
  6. for (i = 1; i < rows.length; i++) {  
  7. //get the rows which have all cells  
  8. if (rows[i].getElementsByTagName("td").length == 3) {  
  9. if (str == '') {  
  10. str = i;  
  11. }  
  12. else {  
  13. str = str + ',' + i;  
  14. }  
  15. }  
  16. }  
  17. var arr = str.split(",");  
  18. //find merge rows and apply parent style on merge rows  
  19. for (j = 0; j < arr.length; j++) {  
  20. if (j % 2 == 0) {  
  21. rows[arr[j]].className = "even";  
  22. else {  
  23. rows[arr[j]].className = "odd";  
  24. }  
  25. }  
  26. for (i = 1; i < rows.length; i++) {  
  27. if (rows[i].getElementsByTagName("td").length == 3) {  
  28. clsName = rows[i].className;  
  29. }  
  30. else {  
  31. rows[i].className = clsName;  
  32. }  
  33. }  
  34. </script>  
  1. private void MergeGridviewRows(GridView gridView)  
  2. {  
  3. for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--)  
  4. {  
  5. GridViewRow row = gridView.Rows[rowIndex];  
  6. GridViewRow previousRow = gridView.Rows[rowIndex + 1];  
  7. if (row.Cells[0].Text == previousRow.Cells[0].Text && row.Cells[1].Text == previousRow.Cells[1].Text)  
  8. {  
  9. row.Cells[0].RowSpan = previousRow.Cells[0].RowSpan < 2 ? 2 : previousRow.Cells[0].RowSpan + 1;  
  10. row.Cells[1].RowSpan = previousRow.Cells[1].RowSpan < 2 ? 2 : previousRow.Cells[1].RowSpan + 1;  
  11. previousRow.Cells[0].Visible = false;  
  12. previousRow.Cells[1].Visible = false;  
  13. }  
  14. if (row.Cells[2].Text == previousRow.Cells[2].Text && row.Cells[3].Text == previousRow.Cells[3].Text)  
  15. {  
  16. row.Cells[2].RowSpan = previousRow.Cells[2].RowSpan < 2 ? 2 : previousRow.Cells[2].RowSpan + 1;  
  17. row.Cells[3].RowSpan = previousRow.Cells[3].RowSpan < 2 ? 2 : previousRow.Cells[3].RowSpan + 1;  
  18. previousRow.Cells[2].Visible = false;  
  19. previousRow.Cells[3].Visible = false;  
  20. }  
  21. if (row.Cells[4].Text == previousRow.Cells[4].Text && row.Cells[5].Text == previousRow.Cells[5].Text)  
  22. {  
  23. row.Cells[4].RowSpan = previousRow.Cells[4].RowSpan < 2 ? 2 : previousRow.Cells[4].RowSpan + 1;  
  24. row.Cells[5].RowSpan = previousRow.Cells[5].RowSpan < 2 ? 2 : previousRow.Cells[5].RowSpan + 1;  
  25. previousRow.Cells[4].Visible = false;  
  26. previousRow.Cells[5].Visible = false;  
  27. }  
  28. }  
  29. }  
  30. protected void gvUpdateDate_PreRender(object sender, EventArgs e)  
  31. {  
  32. MergeGridviewRows(gvUpdateDate);  
  33. }  

Answers (1)