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

简介:

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

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

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

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

}

}
分类:  C#
0
0
« 上一篇: 按钮同时执行单击和双击的代码
» 下一篇: 汉字转拼音缩写的函数以及其他函数
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,如需转载请自行联系原作者
相关文章
|
7月前
|
C#
C# 解决引用dll,出现dll不可以使用等问题
C# 解决引用dll,出现dll不可以使用等问题
|
3月前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
62 8
|
3月前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue&lt;T&gt;`和`ConcurrentDictionary&lt;TKey, TValue&gt;`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
49 1
|
2月前
|
C#
Delphi可不可以制作出像c#那样的dll类库?
在Delphi中,创建DLL项目(如dll.dpr)并定义一个类TMyCls后,在另一个项目(如test.dpr)中可以引入此DLL并直接实例化和调用类的方法。然而,Delphi目前主要支持两种DLL形式:动态链接库(需显式声明exports,仅支持函数调用)和ActiveX DLL(需定义IDL接口)。这两种方式都较为繁琐。相比之下,C# 的DLL类库更为便捷,编写并编译后即可在其他项目中直接使用。
|
4月前
|
C# 数据库
C# 使用 DbDataReader 来访问数据库
C# 使用 DbDataReader 来访问数据库
71 2
|
4月前
|
数据库 C#
C# 使用SqlDataAdapter和DataSet来访问数据库
C# 使用SqlDataAdapter和DataSet来访问数据库
35 0
|
4月前
|
C#
C# WPF 将第三方DLL嵌入 exe
C# WPF 将第三方DLL嵌入 exe
88 0
|
4月前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
6月前
|
安全 编译器 API
程序与技术分享:C#调用DLL的几种方法
程序与技术分享:C#调用DLL的几种方法
93 0