DataGrid相邻行有相同内容时对指定列合并和C#可以实现DLL库的动态调用

简介:

ExpandedBlockStart.gif /// <summary>
InBlock.gif
/// DataGrid相邻行有相同内容时对指定列合并
InBlock.gif
/// </summary>
InBlock.gif
/// <param name="spangrid">格式化的DataGrid的ID</param>
InBlock.gif
/// <param name="spancell">要合并的列</param>        
ExpandedBlockEnd.gif
/// <param name="spanby">合并所依据数据的列</param>

None.gif      public   void  FormatGrid(DataGrid spangrid, int  spancell, int  spanby)
ExpandedBlockStart.gif    
{
InBlock.gif      
if(spanby<0 || spanby>spangrid.Items.Count)
InBlock.gif          
return;
InBlock.gif          
int rowspan = 1;
InBlock.gif          
for(int i = 1;i<spangrid.Items.Count;i++)
ExpandedSubBlockStart.gif         
{
InBlock.gif        
if(spangrid.Items[i].Cells[spanby].Text == spangrid.Items[i-1].Cells[spanby].Text)
ExpandedSubBlockStart.gif            
{
InBlock.gif                
InBlock.gif               rowspan 
+=1;
InBlock.gif               spangrid.Items[i].Cells[spancell].Visible 
= false;
InBlock.gif               spangrid.Items[i
-rowspan+1].Cells[spancell].RowSpan = rowspan;
ExpandedSubBlockEnd.gif            }

InBlock.gif        
else
ExpandedSubBlockStart.gif        
{    
InBlock.gif           
string str = spangrid.Items[i].Cells[spanby].Text;
InBlock.gif           
string str1 = spangrid.Items[i-1].Cells[spanby].Text;
InBlock.gif           rowspan 
= 1;
ExpandedSubBlockEnd.gif        }
    
ExpandedSubBlockEnd.gif              }

ExpandedBlockEnd.gif    }
 
None.gif
C#可以实现DLL库的动态调用
None.gif Assembly assmebly  =  Assembly.LoadFile( @" C:WindowsApplication2005-09-30.dll " );
None.gifType t 
=  assmebly.GetType( " WindowsApplication2005_09_30.Class1 " );
None.gif
object  obj  =  Activator.CreateInstance(t, null );
None.gifMethodInfo method 
=  t.GetMethod( " Test01 " );
ExpandedBlockStart.gif
int  i  =  ( int )method.Invoke(obj, new   object [ 1 ] {10} );
None.gif
namespace  WindowsApplication2005_09_30
ExpandedBlockStart.gif
{
InBlock.gif
public class Class1
ExpandedSubBlockStart.gif
{
InBlock.gif
public int Test01(int i)
ExpandedSubBlockStart.gif
{
InBlock.gif
return i*10;
ExpandedSubBlockEnd.gif}

ExpandedSubBlockEnd.gif}

ExpandedBlockEnd.gif}
posted on  2005-10-11 19:09  高海东 阅读( 1011) 评论( 3编辑  收藏

评论

#1楼   2007-06-08 00:48  wdx2008   
收藏
  

#2楼 [ 楼主2008-09-20 08:23  高海东   
有时候我们需要,设置gridview的表格线,研究了好久,找了很多资料,终于解决

GridView1.Attributes.Add(
" BorderColor " " #0693F5 " );

 

如果如下设置,结果表格边框的颜色变了.

< asp:GridView ID = " GridView1 "  runat = " server "  BorderColor = " red " >
 
</ asp:GridView >

到页面看源代码

< table cellspacing = " 0 "   border = " 1 "  id = " GridView1 "  style = " border-color:Red;border-collapse:collapse; " >
  
< tr > .

其中BorderColor
= " red 解释成了style= " border - color:Red了,但是这并不是我们所要的.我们要的表格线的颜色为红色,而不是表格边框颜色为红色,所以只能在GridView呈现前添加属性

GridView1.Attributes.Add(
" BorderColor " " #0693F5 " );
  

#3楼 [ 楼主2008-09-20 08:35  高海东   
  #region  合并单元格 合并某一行的所有列
        
///     <summary>    
        
///    合并GridView中某行相同信息的行(单元格)
        
///     </summary>    
        
///     <param   name="GridView1"> GridView对象 </param>    
        
///     <param   name="cellNum"> 需要合并的行 </param>
         public   static   void  GroupRow(GridView GridView1,  int  rows)
        {
            TableCell oldTc 
=  GridView1.Rows[rows].Cells[ 0 ];
            
for  ( int  i  =   1 ; i  <  GridView1.Rows[rows].Cells.Count; i ++ )
            {
                TableCell tc 
=  GridView1.Rows[rows].Cells[i];    // Cells[0]就是你要合并的列
                 if  (oldTc.Text  ==  tc.Text)
                {
                    tc.Visible 
=   false ;
                    
if  (oldTc.ColumnSpan  ==   0 )
                    {
                        oldTc.ColumnSpan 
=   1 ;
                    }
                    oldTc.ColumnSpan
++ ;
                    oldTc.VerticalAlign 
=  VerticalAlign.Middle;

                }
                
else
                {
                    oldTc 
=  tc;
                }
            }
        }
        
#endregion

        
#region  合并单元格 合并一行中的几列
        
///   <summary>
        
///  合并单元格 合并一行中的几列
        
///   </summary>
        
///   <param name="GridView1"> GridView ID </param>
        
///   <param name="rows"> </param>
        
///   <param name="sCol"> 开始列 </param>
        
///   <param name="eCol"> 结束列 </param>
         public   static   void  GroupRow(GridView GridView1,  int  rows, int  sCol, int  eCol)
        {
             TableCell oldTc 
=  GridView1.Rows[rows].Cells[sCol];
            
for  ( int  i  =   1 ; i  <  eCol  -  sCol; i ++ )
            {
                TableCell tc 
=  GridView1.Rows[rows].Cells[i  +  sCol];    // Cells[0]就是你要合并的列
                tc.Visible  =   false ;
                
if  (oldTc.ColumnSpan  ==   0 )
                {
                   oldTc.ColumnSpan 
=   1 ;
                }
                oldTc.ColumnSpan
++ ;
                oldTc.VerticalAlign 
=  VerticalAlign.Middle;
            }
        }
        
#endregion

 

        
#region  合并单元格 合并某一列所有行
        
///   <summary>
        
///  合并GridView中某列相同信息的行(单元格)
        
///   </summary>
        
///   <param name="GridView1"></param>
        
///   <param name="cellNum"></param>
         public   static   void  GroupCol(GridView GridView1,  int  cols)
        {
            
if  (GridView1.Rows.Count  <   1   ||  cols  >  GridView1.Rows[ 0 ].Cells.Count  -   1 )
            {
                
return ;
            }

            TableCell oldTc 
=  GridView1.Rows[ 0 ].Cells[cols];
            
for  ( int  i  =   1 ; i  <  GridView1.Rows.Count; i ++ )
            {
                TableCell tc 
=  GridView1.Rows[i].Cells[cols];
                
if  (oldTc.Text  ==  tc.Text)
                {
                    tc.Visible 
=   false ;
                    
if  (oldTc.RowSpan  ==   0 )
                    {
                        oldTc.RowSpan 
=   1 ;
                    }
                    oldTc.RowSpan
++ ;
                    oldTc.VerticalAlign 
=  VerticalAlign.Middle;
                }
                
else
                {
                    oldTc 
=  tc;
                }
            }
        }
        
#endregion

        
#region  合并单元格 合并某一列中的某些行
        
///   <summary>
        
///  合并单元格 合并某一列中的某些行
        
///   </summary>
        
///   <param name="GridView1"> GridView ID </param>
        
///   <param name="cellNum"> </param>
        
///   <param name="sRow"> 开始行 </param>
        
///   <param name="eRow"> 结束列 </param>
         public   static   void  GroupCol(GridView GridView1,  int  cols, int  sRow, int  eRow)
        {
            
if  (GridView1.Rows.Count  <   1   ||  cols  >  GridView1.Columns.Count  -   1 )
            {
                
return ;
            }

            TableCell oldTc 
=  GridView1.Rows[sRow].Cells[cols];
            
for  ( int  i  =   1 ; i  <  eRow  -  sRow; i ++ )
            {
                TableCell tc 
=  GridView1.Rows[sRow  +  i].Cells[cols];   
                tc.Visible 
=   false ;
                
if  (oldTc.RowSpan  ==   0 )
                {
                    oldTc.RowSpan 
=   1 ;
                }
                oldTc.RowSpan
++ ;
                oldTc.VerticalAlign 
=  VerticalAlign.Middle;
            }
        }
        
#endregion



本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/10/11/252577.html,如需转载请自行联系原作者
相关文章
|
11天前
用dragstart、drag、dragend、dragover、drop、dragleave实现针对表格列的顺序进行拖拽排序(附带实现选择某几列数据显示或隐藏)
用dragstart、drag、dragend、dragover、drop、dragleave实现针对表格列的顺序进行拖拽排序(附带实现选择某几列数据显示或隐藏)
|
JavaScript
VUE之vxe-table高级表格(表格内增删改、导入、导出、自定义打印、列设置隐藏显示等)用法
VUE之vxe-table高级表格(表格内增删改、导入、导出、自定义打印、列设置隐藏显示等)用法
6373 0
VUE之vxe-table高级表格(表格内增删改、导入、导出、自定义打印、列设置隐藏显示等)用法
PyQt5 技术篇-QTableWidget表格组件指定行的隐藏与显示控制实例演示,设置表格指定列的列宽方法
PyQt5 技术篇-QTableWidget表格组件指定行的隐藏与显示控制实例演示,设置表格指定列的列宽方法
590 0
PyQt5 技术篇-QTableWidget表格组件指定行的隐藏与显示控制实例演示,设置表格指定列的列宽方法
|
9月前
|
存储 C语言
ArcGIS:Excel/Txt 文件生成点图层、属性表编辑的基本方法、属性表之间的连接(合并)和关联的操作、属性表的字段计算器的使用
ArcGIS:Excel/Txt 文件生成点图层、属性表编辑的基本方法、属性表之间的连接(合并)和关联的操作、属性表的字段计算器的使用
179 0
|
10月前
|
JavaScript Java 关系型数据库
Element表格和表单字典转换(静态和动态)(上)
Element表格和表单字典转换(静态和动态)(上)
289 0
|
10月前
|
JavaScript 前端开发 API
Element表格和表单字典转换(静态和动态)(下)
Element表格和表单字典转换(静态和动态)(下)
149 0
|
C++ 索引
C/C++ Qt StringListModel 字符串列表映射组件
StringListModel 字符串列表映射组件,该组件用于处理字符串与列表框组件中数据的转换,通常该组件会配合ListView组件一起使用,例如将ListView组件与Model模型绑定,当ListView组件内有数据更新时,我们就可以利用映射将数据模型中的数值以字符串格式提取出来,同理也可实现将字符串赋值到指定的ListView组件内。
186 0
C/C++ Qt StringListModel 字符串列表映射组件
PyQt5 技术篇-设置QTableWidget表格组件默认值实例演示,如何获取QTableWidget表格组件里的值,获取表格的行数和列数
PyQt5 技术篇-设置QTableWidget表格组件默认值实例演示,如何获取QTableWidget表格组件里的值,获取表格的行数和列数
550 0
PyQt5 技术篇-设置QTableWidget表格组件默认值实例演示,如何获取QTableWidget表格组件里的值,获取表格的行数和列数
|
C#
详解WPF Blend工具中的复合路径功能 ( 含路径标记语法 )
原文:详解WPF Blend工具中的复合路径功能 ( 含路径标记语法 ) 写此文章的目的是为了简单分析一下 Blend工具中提供的"复合路径"功能.有人在我的博文中留言问我复合路径的问题.  稍微琢磨一下,觉得应该是对的.
1464 0