前阵子公司有同事需要将搜索页面的搜索结果导出成Excel文件. 用几个不同的办法做了出来. 最后部署时发现: 用COM+组件行不通, 服务器上没装OFFICE; 用OWC也不行, 因为服务器是64位的, OWC不支持; 导出成Excel2003支持的xml, 这招最灵活, 也是一个简单可行的办法. 首先用Excel 2003新建一个空白Wookbook, 然后保存为XML Spreadsheet. 然后打开看它生成的XML代码就能了解XML Spreadsheet的基本结构了. 我先把DataTable生成XML数据, 再使用一个XLS把XML数据转换成XML Spreadsheet的结构. using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Reflection;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
namespace APro阅读全文>
发表于 @ 2008年10月24日 17:06:00 | 评论( loading... ) | 举报| 收藏
SPGridView提供数据分组显示功能, 但是只能将页面内数据分组. 只要设置 AllowGrouping(true), GroupField(某列名) 就能实现下面的效果. 如果需要给分组的列加链接加菜单的话, 就得再设置GroupMenu. GroupMenu需要一个SPMenuField对象, 而SPMenuField又需要一个MenuTemplate. 所以我们先加入一个MenuTemplate.
由于这个GroupMenu不在Columns里, 而SPMenuField又不能像MenuTemplate一样扔在SPGridView之外. 所以只好在代码里加了.
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.SPGridView1.GroupMenu = new SPMenuField();
this.SPGridView1.GroupMenu.MenuTemplateId = this.mtCatego阅读全文>
发表于 @ 2008年10月23日 17:02:00 | 评论( loading... ) | 举报| 收藏
SPGridView的排序与GridView是相同的. 我们先看看SPGridView默认排序功能的效果. 启用排序功能先把将SPGridView的AllowSorting属性设置成true, 然后给需要排序的列设置SortExpression属性. 这样就可以效果页面内的排序, 就是只能把当前在SPGridView里显示的数据排序一下. 如果需要从数据源那端排序, 就得先准备好一个有排序表达式参数的取数据方法, 之前我们准备的NorthwindData.cs里已经有了一个GetProductList(string sortExpression)方法, 我们只需要再把ObjectDataSource的SortParameterName设置成与那个参数名字一置, "sortExpression"就行了. 过滤是SPGridView新增的功能, 效果很酷. Filter菜单中装载了SPGridView中全部的Category, 选中一个Category后SPGridView就会只显示选中Category的数据, 再点开Category菜单就变成右阅读全文>
发表于 @ 2008年10月23日 15:25:00 | 评论( loading... ) | 举报| 收藏
今年一直在为MOSS 2007写自制ASP.NET程序, 为了让程序的样式更通用, 更配合MOSS自带的风格, 我花不了少时间调整样式, 建立公用的CSS和JS. 一个偶然的机会, 我从一大堆"无用的"SharePoint内置控件中找到一个可以用的控件, 就是SPGridView. SPGridView提供了MOSS的列表样式, 给我省了不少功夫. 虽然SPGridView跟MOSS列表页里用的ListViewWebPart长得一模一样, 但是ListViewWebPart根本没用到SPGridView, 所以MOSS列表页里那个漂亮的工具条你就别想了 呵呵. SPGridView是MOSS内置控件中少数能脱离SharePoint List等内置数据源使用的控件, 它继承自System.Web.UI.WebControls.GridView, 但是使用SPGridView时必须手动把AutoGenerateColumns设成false. 1. 先创建一个ASP.NET Web Application(ASP.NET Web应用程序)项目. 该项目模板已阅读全文>
发表于 @ 2008年10月21日 15:53:00 | 评论( loading... ) | 举报| 收藏
这个东东是去年我看着ASP:标记突发奇想花4天时间设计编写的类库, 原名叫 HtmlGenerator, 最近发现PHP和JAVA有很多类似的项目, 但是都设计的很渣(不同意的表打我@_@), 于是把 HtmlGenerator 重构了一下, 改叫 CodeGenerator. 配合我的数据库迁移工具和数据库实体类生成品..... 好像跑题了 -____-
CodeGenerator 的特点:
1. 标记简结实用, 所有网页美工都能在一分钟内掌握. 而且不与HTML标准冲突, 模板页可用任何WYSIWYG工具编辑, 和编辑普通HTML网完全相同.
2. 标记只与表示层相关, 不包括任何业务逻辑, 丝毫不影响你应用多层结构.
3. 标记到后台被解析成了生成器对象, 完全面向对象, 不像绝大多数生成器要死嗑字符串.
4. 生成器对象使用DataSource属性取得数据, DataSource可以为 简单值类型(如 int, DateTIme), 也可以为简单数组(如 decimal[], string[]), 还可以为ADO.NET数据集(如DataTable), 甚至单个阅读全文>
发表于 @ 2007年06月28日 21:51:00 | 评论( loading... ) | 举报| 收藏
利用 当前时间与2000-1-1 0:0:0 相差的毫秒数转成36进制字符串 加上4位随机字符串 生成一个随机文件名. 算是长度比较短而唯一性比较高的随机文件名生成方法了阅读全文>
发表于 @ 2007年05月27日 23:42:00 | 评论( loading... ) | 举报| 收藏
RequestFileFromHtml(string html, string fileUrl, string filePath, string reservedHost)阅读全文>
发表于 @ 2007年05月25日 08:46:00 | 评论( loading... ) | 举报| 收藏
JavaScript 对象是词典
JavaScript 函数是最棒的
构造函数而不是类
原型
静态属性和方法
闭包
模拟私有属性
从类继承
模拟命名空间
应当这样编写 JavaScript 代码吗?
展望
阅读全文>
发表于 @ 2007年05月15日 19:44:00 | 评论( loading... ) | 举报| 收藏
不使用IE的Filter,用DIV+CSS实现实现文字及面板阴影效果, 在IE及FF中都可用阅读全文>
发表于 @ 2007年04月27日 12:36:00 | 评论( loading... ) | 举报| 收藏
CSS在网页表现上得到广泛的应用。其中,word-wrap属性用于控制文字的折行,但是该属性是微软IE的专有属性,其它浏览器并不支持阅读全文>
发表于 @ 2006年10月27日 18:46:00 | 评论( loading... ) | 举报| 收藏
介绍如何使用 Microsoft ASP.NET 执行动态 URL 重写。URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。讨论实现 URL 重写的各种技术,并介绍执行 URL 重写的一些实际情况。阅读全文>
发表于 @ 2006年10月15日 17:46:00 | 评论( loading... ) | 举报| 收藏
ASP.NET 2.0 提供了大量新功能,其中包括声明性数据绑定和母版页,成员和角色管理服务等。但我认为最棒的功能是异步页,接下来让我告诉您其中的原因。阅读全文>
发表于 @ 2006年09月21日 16:51:00 | 评论( loading... ) | 举报| 收藏
本文将讨论:
• 缓存和 Forms 身份验证
• 视图状态和会话状态
• 配置文件属性序列化
• 线程池饱和
• 模拟和设置配置文件
本文使用了下列技术:
.NET Framework、ASP.NET、Windows Server 2003
阅读全文>
发表于 @ 2006年09月12日 10:40:00 | 评论( loading... ) | 举报| 收藏
学习有关 Visual Studio 2005 Web 测试的更多知识,包括 Web 测试引擎和记录器如何工作,以及如何创建有效的 Web 测试阅读全文>
发表于 @ 2006年09月04日 11:01:00 | 评论( loading... ) | 举报| 收藏