惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
S
Securelist
D
Docker
The Register - Security
The Register - Security
GbyAI
GbyAI
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
罗磊的独立博客
博客园 - 【当耐特】
F
Full Disclosure
WordPress大学
WordPress大学
腾讯CDC
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
I
InfoQ
MyScale Blog
MyScale Blog
量子位
Cyberwarzone
Cyberwarzone
博客园 - 三生石上(FineUI控件)
The Hacker News
The Hacker News
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园_首页
H
Help Net Security
K
Kaspersky official blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Webroot Blog
Webroot Blog
Blog — PlanetScale
Blog — PlanetScale
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
The Cloudflare Blog
P
Proofpoint News Feed
V
Visual Studio Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
爱范儿
爱范儿
P
Privacy International News Feed
Security Archives - TechRepublic
Security Archives - TechRepublic
The GitHub Blog
The GitHub Blog
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed

博客园 - kkk

无题 重出江湖! 技巧百问(10):UrlRewrite以及二级UrlRewrite 今天周末休息一天,发贴! 转贴:ASP.NET 2.0 中改进的缓存功能 一个多月来第一贴! 怀念一下《幽灵公主》 惊悚科幻 《灵幻夹克》 西安归来!(终于写完了) 支付宝Payto接口的c#.net实现 关于MD5码的一些自我总结 超准的爱情测验! 转贴:Oracle(甲骨文)的CEO Larry.Ellison在耶鲁大学2000届毕业典礼上的演讲 转贴:出租车司机给微软高管上的MBA课程! 80个Gmail帐号,5个Live Messenger试用邀请,要的留言并注明是什么的邀请! 新年新贴! 关于asp.net c#中对cookie的操作 - kkk - 博客园 回滚事务日志文件中的事务 转贴:ASP.NET中的UrlRewrite
再总结一些技巧
kkk · 2006-04-20 · via 博客园 - kkk

        很久都没写了,我比较懒。今天想到还是写一店店,也方便我自己查找,虽然有些做成了模板使用。

        首先还是一个老话题——DataGrid,越用越觉得这个东西的确是个经典的东西,但是Micosoft的东西从来都感觉比较死板,所以用datalist或者table来实现界面上也好看,最近看了一些关于ajax的东西,里面的datagrid就爽的很,书归正传,还是先说说这个DataGrid。
       
        实现DataGrid中的数据转换到Excel中:
        这个也是我因为要用到这个功能才去找的,开始弄了半天没弄出来,后来终于弄出来了,要点就是DataGrid不要加任何样式-_-!
        代码如下:

Response.Clear(); 
        Response.Buffer
= true
        Response.Charset
="GB2312";    
        Response.AppendHeader(
"Content-Disposition","attachment;filename=test.xls"); 
        Response.ContentEncoding
=System.Text.Encoding.GetEncoding("GB2312");
        Response.ContentType 
= "application/ms-excel"
        
this.EnableViewState = false;    
        System.Globalization.CultureInfo myCItrad 
= new System.Globalization.CultureInfo("ZH-CN",true);
        System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter(myCItrad); 
        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
        
this.datagrid1.RenderControl(oHtmlTextWriter); 
        Response.Write(oStringWriter.ToString());
        Response.End();

        其中首先定义字体,test.xls这个是输出的文件名,然后设置输出字体是简体的,以及文件是Excel文件,剩下就是读数据为流,再使用这个流写出到test.xls文件。

        还有一种是把dataview中的数据输出到Excel文件。

StringWriter sw=new StringWriter(); 
   sw.WriteLine(
"列1,列2,列3"); 
   
for(int i=0;i<dataview.Count;i++)
   { 
    sw.WriteLine(dataview.Table.Rows[i][
"L1"].ToString()+","+dataview.Table.Rows[i]["L2"].ToString()+","+dataview.Table.Rows[i]["L3"].ToString()); 
   } 
   sw.Close(); 
   Response.AddHeader(
"Content-Disposition""attachment; filename=thetest.csv"); 
   Response.ContentType 
= "application/ms-excel"
   Response.ContentEncoding
=System.Text.Encoding.GetEncoding("GB2312"); 
   Response.Write(sw); 
   Response.End(); 

       这里是输出为csv文件,如果要输出为xls文件,就把","换成"\t",然后文件后缀换成xls就可以勒。以此例就可以推出用dataset,datatable输出为xls文件。       
       这里还有一个网友写的使用API实现输出到xls的一个例子 下载

         现在说一下DataGrid中实现象winform中的DataGrid一样点一列名就排序的功能。这个其实也是自带的,实现这个功能我推荐使用xml+datagrid,因为这样速度会比较快。
         首先建立datagrid并且加入事件 OnSortCommand="Sort_Grid",在列中加入SortExpression,这个就是排序的关键字。

<asp:BoundColumn DataField="name" HeaderText="用户名"/><asp:BoundColumn DataField="id" HeaderText="用户编号"/><asp:BoundColumn DataField="money" SortExpression="money" HeaderText="金钱"/>

 OnSortCommand="Sort_Grid"

public void Sort_Grid(Object sender, DataGridSortCommandEventArgs e)
      { 

        sortstr

=e.SortExpression+" desc";
        
//绑定datagrid的函数
      }


绑定的函数这里使用xml然后读取到dataview使用Sort属性=sortstr来实现排序。
这样就可以了。

        还有就是最近有人问DataGrid中使用自定义控件的时候绑定多个字段,这个就是在里面多加几个属性就是了,比如:

<asp:TemplateColumn HeaderText="列名" HeaderStyle-Width="70" ItemStyle-Width="100">
     
<itemtemplate> 
       
<user:usercontrol id="name1" runat="server" uid=<%# DataBinder.Eval(Container.DataItem,"name")%> sid=<%# DataBinder.Eval(Container.DataItem,"name")%> lid=<%# DataBinder.Eval(Container.DataItem,"name")%>/>    
      
</itemtemplate>
</asp:TemplateColumn>

这样就可以了。