欢迎光临
我们一直在努力

(论坛答疑点滴)如果用DataGrid实现类似DataList多列的效果-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

 上一次说了怎么利用datagrid纵向显示
http://www.cnblogs.com/lovecherry/archive/2005/04/23/143819.html
其实这么做的好处在于datagrid能够方便的进行分页,这个排列次序接近于datalist的repeatdirection=”vertical”效果
今天再来对上次的程序进行一下修改,实现repeatdirection=”horizontal”的效果,同时启用datagrid的分页。
这样可以弥补datalist不能自动分页的不足,但是效率上来说其实是很差的。

 

<asp:datagrid id=”datagrid1″ runat=”server” allowpaging=”true” pagesize=”4″></asp:datagrid>

private datatable makedata(datatable dt,int isize,int icolumnid) 
        

            
int itmp=dt.rows.count%isize; 
            
int irow; 
            
if(itmp==0
                irow
=dt.rows.count/isize; 
            
else 
                irow
=dt.rows.count/isize+1
            datatable newdt
=new datatable(); 
            
for(int i=0;i<isize;i++
            

                datacolumn dc
=new datacolumn(dt.columns[icolumnid].columnname+i,dt.columns[icolumnid].datatype); 
                newdt.columns.add(dc); 
            }
 
            
for(int i=0;i<irow;i++
            
{         
                datarow dr
=newdt.newrow(); 
                
for(int j=0;j<isize;j++
                

                    
if((j+i*isize)<dt.rows.count)dr[dt.columns[icolumnid].columnname+j]=dt.rows[j+i*isize][icolumnid]; 
                }
 
                newdt.rows.add(dr);                 
            }
 
            
return newdt; 
        }
 

private void page_load(object sender, system.eventargs e)
        
{
            
// 在此处放置用户代码以初始化页面
            if(!ispostback)
            
{
                setbind();
            }

        }


        
private void setbind()
        
{
            datatable dt
=new datatable(); 
            datacolumn dc
=new datacolumn(test,type.gettype(system.string)); 
            dt.columns.add(dc); 
            
for(int i=1;i<=54;i++
            

                datarow dr
=dt.newrow(); 
                dr[
test]=测试+i; 
                dt.rows.add(dr); 
            }
 
            
this.datagrid1.datasource=makedata(dt,4,0); 
            
this.datagrid1.databind();
        }
    private void datagrid1_pageindexchanged(object source, system.web.ui.webcontrols.datagridpagechangedeventargs e)
        
{
            
this.datagrid1.currentpageindex=e.newpageindex;
            setbind();
        }

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » (论坛答疑点滴)如果用DataGrid实现类似DataList多列的效果-.NET教程,Asp.Net开发
分享到: 更多 (0)