zoukankan      html  css  js  c++  java
  • .net 合并GridView中某列相同信息的行(方法2)

    合并GridView中某列相同信息的行的方法:

     1  /// <summary>
     2     ///  合并1、2、3、4、5、6、7列 
     3     /// </summary>
     4     private void gvRender(GridView GridView1)
     5     {
     6         int i = 0, j = 0;
     7         int rowSpanNum = 1;//暂时默认合并行为1行
     8         string mystr; //用于与下一行对比
     9         //预读入第一行
    10         if (GridView1.Rows.Count>1)
    11         {
    12             mystr = GridView1.Rows[i].Cells[j+1].Text;
    13             //从第一行到最后一行
    14             while (i < GridView1.Rows.Count - 1)
    15             {
    16                 //探索一个合并单元格  
    17                 for (++i; i < GridView1.Rows.Count; i++)
    18                 {
    19                     if (mystr == GridView1.Rows[i].Cells[j+1].Text)
    20                     {
    21                         //遇到相同行,1 隐藏该行;2 合并行数加一
    22 
    23                         // 1  
    24                        // GridView1.Rows[i].Cells[j + 0].Visible = false;
    25                         GridView1.Rows[i].Cells[j + 1].Visible = false;
    26                         GridView1.Rows[i].Cells[j + 2].Visible = false;
    27                         GridView1.Rows[i].Cells[j + 3].Visible = false;
    28                         GridView1.Rows[i].Cells[j + 4].Visible = false;
    29                         GridView1.Rows[i].Cells[j + 5].Visible = false;
    30                         GridView1.Rows[i].Cells[j + 6].Visible = false;
    31                         GridView1.Rows[i].Cells[j + 7].Visible = false;
    32                         // 2   
    33                         rowSpanNum++;
    34                     }
    35                     else
    36                     {
    37                         //没有相同行,1 刷新预读比较行;2 回写前面的合并行信息;3 重置合并行为1;4 完成一次合并             
    38 
    39                         // 1
    40                         mystr = GridView1.Rows[i].Cells[j+1].Text;
    41                         // 2
    42                         //GridView1.Rows[i - rowSpanNum].Cells[j + 0].RowSpan = rowSpanNum;
    43                         GridView1.Rows[i - rowSpanNum].Cells[j + 1].RowSpan = rowSpanNum;
    44                         GridView1.Rows[i - rowSpanNum].Cells[j + 2].RowSpan = rowSpanNum;
    45                         GridView1.Rows[i - rowSpanNum].Cells[j + 3].RowSpan = rowSpanNum;
    46                         GridView1.Rows[i - rowSpanNum].Cells[j + 4].RowSpan = rowSpanNum;
    47                         GridView1.Rows[i - rowSpanNum].Cells[j + 5].RowSpan = rowSpanNum;
    48                         GridView1.Rows[i - rowSpanNum].Cells[j + 6].RowSpan = rowSpanNum;
    49                         GridView1.Rows[i - rowSpanNum].Cells[j + 7].RowSpan = rowSpanNum;
    50                         // 3
    51                         rowSpanNum = 1;
    52 
    53                         // 4  
    54                         break;
    55                     }
    56                 }
    57             }
    58             //结尾
    59             if (rowSpanNum > 1)
    60             {
    61                // GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[0].RowSpan = rowSpanNum;
    62                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[1].RowSpan = rowSpanNum;
    63                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[2].RowSpan = rowSpanNum;
    64                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[3].RowSpan = rowSpanNum;
    65                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[4].RowSpan = rowSpanNum;
    66                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[5].RowSpan = rowSpanNum;
    67                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[6].RowSpan = rowSpanNum;
    68                 GridView1.Rows[GridView1.Rows.Count - rowSpanNum].Cells[7].RowSpan = rowSpanNum;
    69             }
    70         }
    71     }

    方法调用:

    1 gvRender(SearchGrird);

    效果图:

    注意:本方法不支持gridview模板列,如下:

    1 <asp:TemplateField HeaderText="序号">
    2                                                 <ItemTemplate>                                               
    3                                                     <%#Container.DataItemIndex+1%>
    4                                                 </ItemTemplate>
    5                                                  <ControlStyle Font-Underline="False" />
    6                                             </asp:TemplateField>

               支持下列的写法:

     1 <asp:BoundField DataField="Name" HeaderText="病人姓名" />
     2                                             <asp:BoundField DataField="patient_id" HeaderText="门诊号" />
     3                                             <asp:BoundField DataField="visit_id" HeaderText="住院次数" />
     4                                             <asp:BoundField DataField="REPORT_NAME" HeaderText="报告类型" />
     5                                             <asp:BoundField DataField="SEX" HeaderText="性别" />
     6                                             <asp:BoundField DataField="Age" HeaderText="年龄" />
     7                                             <asp:BoundField DataField="Weight" HeaderText="体重" />
     8                                             <asp:BoundField DataField="Diagnosis" HeaderText="原患病历" />
     9                                             <asp:BoundField DataField="DOSAGE" HeaderText="怀疑药品名称" />
    10                                             <asp:BoundField DataField="START_TIME" HeaderText="用药开始时间" />
    11                                             <asp:BoundField DataField="END_TIME" HeaderText="用药结束时间" />
    12                                             <asp:BoundField DataField="FS_DATE" HeaderText="不良反应发生时间" />
    13                                             <asp:BoundField DataField="XX_MS" HeaderText="药品不良反应名称" />
    14                                             <asp:BoundField DataField="CS_FF" HeaderText="处理情况" />
    15                                             <asp:BoundField DataField="report_name_seven" HeaderText="结果" />
    16                                             <asp:BoundField DataField="REPORT_DATE" HeaderText="上报时间" />
    17                                             <asp:BoundField DataField="DEPT_NAME" HeaderText="上报科室" />
    18                                             <asp:BoundField DataField="REPORTER_SIGN" HeaderText="上报人" />    
  • 相关阅读:
    英国下院通过法案允许合成人兽胚胎
    老外关于思考时间的问与答
    性能测试中用LambdaProbe监控Tomcat
    BT下载原理
    汽车维修行业呼吁大学生加入修车行列
    一个女研究生(高级测试工程师)的职业选择
    微软称20日验证Windows与Office 盗版将黑屏 网友评论
    Xbox摇身变NAS:BT的使用问题与性能测试
    李开复建言大学生:求职中不要把钱看得太重
    IBM雇员将罢工15分钟 为抗议公司裁员
  • 原文地址:https://www.cnblogs.com/chenpanpan/p/14572561.html
Copyright © 2011-2022 走看看