我和.net

主要讲述Sharepoint以及OfficeSystem和在.net下的开发和应用

导航

2004年11月18日 #

项目的整个生命周期中的Project Server

摘要: 我在使用单机版Project的时候,一直觉得Project就是一个用于进行了项目规划的工具。那么现在使用了Project server 我的认识又进了一步,我猛然发现,微软的这个系统居然可以贯穿整个项目的生命周期。 首先,我们知道之所以要实行项目管理,就是因为我们在做一个项目的时候,要确定项目的范围,控制项目的成本,保证进度,而通过项目管理工具能够很好的帮助项目管理者来完成这些工具。 阅读全文

posted @ 2004-11-18 08:25 皮皮 阅读(853) 评论(0) 推荐(0) 编辑

修复outlook个人文件夹pst文件

摘要: 一个800多兆的outlook个人文件夹PSt文件,打开其他的文件夹都正常,唯独打开已发送邮件文件夹的时候提示错误,…… 阅读全文

posted @ 2004-11-18 08:23 皮皮 阅读(10052) 评论(9) 推荐(0) 编辑

使用程序修改域帐户直接领导时遇到的错误

摘要: 使用C#修改域帐户的直接领导,本来是一件非常容易的事情,可是今天下午,我却怎么也调不过去, 阅读全文

posted @ 2004-11-18 08:22 皮皮 阅读(597) 评论(0) 推荐(0) 编辑

由玩极品飞车想到的

摘要: 不玩游戏已经很久了,这几天因为帮助大姨子测试她的新笔记本。我在她的本本上安装了极品飞车5。 我选择玩测试员模式,头三关很轻松就过了。在第四关的时候,我觉被难住了——这一关是这样的: 直行,在中间指定区域完成一个360度的原地掉头,然后继续执行,这个操作必须在15秒内完成。 阅读全文

posted @ 2004-11-18 08:21 皮皮 阅读(588) 评论(1) 推荐(0) 编辑

利用Wss编制可以定制的的走马灯web 部件

摘要: 昨天下午,用了一个下午的时间编写了一个走马灯的webpart。这个Webpart可以自定义字体大小、颜色、宽度、滚动速度等。 在这个走马灯中没有特别的东西,主要的日期的比较。 可能是由于c#语言不是很熟的关系,我不知道有没有函数直接将字符串转换成DateTime型,反正我没找到,于是,我使用了下面这样的程序块来完成这个转换任务。 阅读全文

posted @ 2004-11-18 08:20 皮皮 阅读(1566) 评论(4) 推荐(0) 编辑

当系统提示“属性不能为0,属性……”

摘要: 当我将开发好的webpart部署到imd.test.net/blog上后,一个错误出现了。唯一值怀疑的是在获取创建者姓名时,我用了一个数组下表来获取的(其他的都是用字符串来获取的,即标题,用的是item["标题"],正文用的是"正文",但是由于这个blog中创建时间和创建者姓名用了同一名字“创建者”,当我用item["创建者"]获得的是创建时间而不是创建者的姓名,所以,我用item[4]来获取创建者的姓名)。于是,我从源代码中注册了这行代码,结果,错误就消失了。 阅读全文

posted @ 2004-11-18 08:18 皮皮 阅读(649) 评论(0) 推荐(0) 编辑

在Project Server中想要建立文档和任务之间的关系时失败

摘要: 今天给系统集成部项目一部的同事讲Project的应用的时候,我想要在文档库和任务之间创建一个关系.当我在文档属性的"链接任务"后面单击"选择与此文档相关的项目任务"的时候,系统提示: "没有可用的任务 阅读全文

posted @ 2004-11-18 08:15 皮皮 阅读(800) 评论(3) 推荐(0) 编辑

DateTime比较

摘要: 我在日志摘要中曾经用到了日期的比较,我需要比较出发布日志的时间和当前的日期比较,如果是在三天内发布的,那么我就要在这个日志的前面加上“新”字。 我以前的算法很麻烦,就是将字符串转换成整形,然后再计算。 阅读全文

posted @ 2004-11-18 08:13 皮皮 阅读(5424) 评论(0) 推荐(0) 编辑

感受DataGrid给数据操作带来的便利(6)

摘要: 第六节:按列排序 我们在使用数据时,常常要对数据进行排序,那么在这方面DataGrid为我们提供了什么呢?是不是像其他功能那样很轻松就可以实现呢?我刚刚体验了一下,答案是:真的很简单。 首先,我要设置DataGrid的属性,允许它排序,属性名称是:AllowSorting,默认是False,我们设置为True,这个时候,如果你编译运行的话,你就会发现每一列的标题都加上了超链接。不过,这个时候,你点击这些标题并没有什么反应,这是因为,你还没有为这些事件编写代码。我们到属性窗口创建事件OnSortCommand()——单击列标题排序时候发生的事件。 你可以直接在这个函数中编写用于DataGrid重新绑定数据的代码,我呢,这里还是想改造一下我前面一直在用的函数BindGrid()。 首先,我要给它增加一个参数,用于告诉程序,应该按照哪个列来排序,我的函数编程了BindGrid(string sortField) 然后呢,我要增加一个DataView来对数据进行排序。我们来看详细的代码,注意,改动的部分,我用红色标出来: public void BindGrid(string st 阅读全文

posted @ 2004-11-18 08:07 皮皮 阅读(993) 评论(0) 推荐(0) 编辑

感受DataGrid给数据操作带来的便利(5)

摘要: 第五节:删除条目 相对第四节的更新数据来说要删除条目就简单多了。关键步骤如下: 增加一个删除的按钮列,怎么增加参照第四节讲的。 设置DataGrid的DataKeyField属性,必须设置为数据库的关键字。 添加DeleteCommand事件,编写代码: 阅读全文

posted @ 2004-11-18 08:06 皮皮 阅读(840) 评论(0) 推荐(0) 编辑

感受DataGrid给数据操作带来的便利(4)

摘要: 第四节:编辑数据 不知道各位在asp程序中是怎样来修改数据库记录的,反正我的做法是做一个列表,将所有的记录列出来,然后,在关键字段加上超级链接,然后在用户点击超链接后,将页面转发到一个新的编辑页面上。在那个时候,我多么想想编辑Excel表格那样就在自己的列表里修改我想修改的字段。然后,DataGrid就为我提供了这样的功能。在DataGrid中,可以通过属性生成器在数据列表的前面增加一个“编辑”操作列,即在每一条记录的前面(每一行)都会增加一个“编辑”的超链接,单击这个超链接,这一行就会变成可以编辑的,每个字段都会变成一个文本框,这时,操作列就会变成“更新”和“取消”。这是,我们只需要修改我们需要修改的数据,然后,单击更新保存程序就行了(更新事件当然要写代码了)。 主要的步骤如下: 阅读全文

posted @ 2004-11-18 08:05 皮皮 阅读(1193) 评论(1) 推荐(0) 编辑

2004年11月16日 #

感受DataGrid给数据操作带来的便利(3)

摘要: 第三节:快速分页 在第二节中,我体会到了DataGrid在定制外观上的快捷和方便,这一节,我又学会了快速的将数据分页。 我们在查询数据库的时候,往往不会用一个页面来显示所有的数据,而是对数据进行分页显示。记得在asp中,我们编写一个分页的页面非常麻烦,当我,学会了用DataGrid来Render数据的时候,我兴奋不已,因为,它做数据分页原来这么简单。 还是打开属性生成器(或者修改“分页”类的属性),这个时候你肯定知道要去选择左侧的“分页”分支。在右边,选择“允许分页”,然后,设置每一页显示的条数,页导航条的位置、名称等。你是不是认为这样就可以了,起初我也这么认为的,以为这样就可以了,但是,当我运行这个程序的时候,发现单击导航条后并没有什么反应。因为,我们还要编写几句代码来完成这个操作。 阅读全文

posted @ 2004-11-16 13:02 皮皮 阅读(489) 评论(0) 推荐(0) 编辑

感受DataGrid给数据操作带来的便利(2)

摘要: 第二节:定制DataGrid的外观 上一篇文章中,我初步感受到了DataGrid给我带来的便利,但是,如果是我们自己编写程序画的表格的话,我们能够很灵活的控制表格的表现形式,所以,DataGrid能不能定制它的表现形式。答案,我知道肯定是可以的,关键是它是否比我自己用代码“画”要来得快。 根据以往的经验,我知道,从DataGrid的属性中就可以完成这些操作。 1、选择要显示的列: 阅读全文

posted @ 2004-11-16 13:00 皮皮 阅读(466) 评论(0) 推荐(0) 编辑

感受DataGrid给数据操作带来的便利(1)

摘要: 作为一个刚刚接触asp.net的人来说,DataGrid能够为我们提供那些便利,一直是我想要早点知道的。这两天我恰好自己动手在修改以前的一个asp应用,所以,我学习了一下DataGrid,体会了一下,确实为我们带来了很多的便利,总结了一下,写出来给像我这样的初学者。 第一部分:用DataGrid显示数据表中的所有的数据 我们使用DataGrid的一个目的就是要用它来显示数据。我们首先要在页面上放上一个DataGrid,比如DataGrid1,接下来,我们要在页面的定义一个全局的数据库链接,你可以从vs.net2003的工具箱里创建一个“SqlConnection”,比如“myConn”,系统会再生成WebForm的时候,初始化它,你也可以在页面的page_load事件中初始化它: private void Page_Load(object sender, System.EventArgs e) { 阅读全文

posted @ 2004-11-16 12:58 皮皮 阅读(469) 评论(0) 推荐(0) 编辑

2004年11月12日 #

微软技术教育大会(Microsoft Tech Ed)心得

摘要: 1 我关注的内容: 本次大会的内容非常丰富,但是,由于借助网络技术,微软为我们提供了网络课堂和各种远程培训机会,所以,在这次技术教育大会,让我感到新奇的东西不多。所以呢,这次我去的目的,首先是去看看微软将发展的重点放在哪里?微软在已有的东西上有哪些应用模式?有哪些开发技巧等等,反正,就是带着开开眼界,开阔思路,寻求工作中遇到的问题的解决方案的目的去的。我选择了两个方面的内容: n Office 应用和开发 n 开发、技术趋势 阅读全文

posted @ 2004-11-12 21:52 皮皮 阅读(3305) 评论(4) 推荐(0) 编辑

自己定制SPS的颜色

摘要: 通过昨天的学习,我知道可以使用CSS来定制sps站点的颜色,我以前也试过通过在管理界面上设置新的Css路径来更改sps站点的颜色,可以没有成功。现在,我明白是因为自己放css文件的路径不对。 我从原来的目录下拷贝了一个OWS.css文件,重新命名为OWS_zy.css,然后拷贝到原来的目录。然后,通过管理界面,设置站点使用我的这个ows_zy.css作为它的样式表(每个虚拟站点都可以使用不同的样式表),然后,我修改我的css文件,界面果然发生了变化。 但是,通过实验,我发现有一些东西的控制并不完全由你定制的css文件来管理,你还需要修改sps.css,但是这个文件是所有虚拟站点公用的,那么当你修改它的时候,所有的站点都会跟着变化。 阅读全文

posted @ 2004-11-12 21:50 皮皮 阅读(847) 评论(1) 推荐(0) 编辑

日志摘要WebPart的日期计算有问题

摘要: 从九月份开始,我发现我的日志摘要上都写上了“新”,我知道,一定是我的算法出现了问题,因为我在比较日志发布日期和当前日期的时候,用了一个取巧的方法,就是将日期转换成整数,然后再相减。 我想正确的算法应该是直接用日志的发布日期和当前日期进行比较才是正确的。 那么日志发布日期使用字符串格式存储的,如何将这个字符串转化成日期类型呢。我没有找到直接的函数,所以我想可以先拆分字符串为年月日,然后使用datetime的对象赋值的方法来实现。 DateTime dt=new DateTime(2004,9,20,0,0,0,0); 阅读全文

posted @ 2004-11-12 21:48 皮皮 阅读(699) 评论(2) 推荐(0) 编辑

使用程序修改域帐户直接领导时遇到的错误

摘要: 使用C#修改域帐户的直接领导,本来是一件非常容易的事情,可是今天下午,我却怎么也调不过去,系统总是在提交修改的那一句提示“出现约束性冲突”。这是怎么回事?我非常纳闷。这个属性是可以修改,不应该会有什么困难。经过仔细检查,我终于找到了这个我好像已经犯过一次的错误,我在给manager属性赋值时,没有将adspath前面的“LDAP://”去掉,这样我等于就是直接把这个adspath赋值给了manager属性,而这个属性要求的是ldap://后面的那部分。所以,总是抱错。 阅读全文

posted @ 2004-11-12 21:47 皮皮 阅读(577) 评论(0) 推荐(0) 编辑

将weblog改成支持图像的站点

摘要: 大家知道,用FrontPage可以很方便的在SharePoint中创建Weblog站点,但是,Sharepoint创建的站点有一个很大的缺陷,就是不能显示图片,如果weblog站点够支持图片的话,那么内容将会丰富得多。 现在的log创建weppart创建的log能够将文本中的html标记很好的存入list中(现在需要手工编写)。但是由于显示的时候用了微软自带的,所以不能解析html标记。因此,我需要做一个支持html标记的显示webpart. 阅读全文

posted @ 2004-11-12 21:45 皮皮 阅读(587) 评论(2) 推荐(0) 编辑

对SPEncode又有新的体会

摘要: 今天做一个能够显示图像的webpart,所以对SPEncode又有新的体会。 上次,我明白了使用SPEncode.HtmlEncode()函数将字符串转换成html格式的文本。今天由于要将存在数据库里的东西显示出来,所以,又使用了SPEncode.HtmlDecode()函数。 阅读全文

posted @ 2004-11-12 21:44 皮皮 阅读(779) 评论(1) 推荐(0) 编辑

在WebPart上创建控件

摘要: 我们在自己开发相关控件的时候,往往需要创建一些控件和用户进行交互(如文本输入框等),我今天为了创建一个编辑列表的webpart自己做了一个,总结了一下,在webpart创建控件的步骤,大致如下: 1、声明在webpart的class中声明你要添加的控件,如加入一个按钮: private Button myButton; 2、重写CreateChildControls() protected override void CreateChildControls() { //创建实例 myButton=new Button(); 阅读全文

posted @ 2004-11-12 21:43 皮皮 阅读(846) 评论(0) 推荐(0) 编辑

使用SPEncode.HtmlEncodePreserverSpace保存输入

摘要: 在创建的webpart上有一个多行的文本输入。但是,保存到list后,发现多行回车换行的地方都没有回车换行。 估计在保存的时候,由于编码的原因未能保存回车换行符。 开始的时候想用str.repalce来替换“\r\n”为“ ”,结果,并不奏效。 突然想起一直不太理解的SPEncode.HtmlEncode和SPEncode.HtmlEncodePreserverSpace,试了一下,果然管用。 阅读全文

posted @ 2004-11-12 17:05 皮皮 阅读(613) 评论(0) 推荐(0) 编辑

通过修改视图来修改首页显示标题字体过小的问题

摘要: 当使用自己开发“WPForListViews”web part显示跨区域文档时,视图原有的列标题字体特小,看上去和页面不协调。 我分析,可能是由于style的定义在这里失效了,所以,我就想用自定义的style来替换它。 我找到跟列标题相关的class是“ms-vh2”和“ms-vh”,一开始我想在程序里修改它,没有成功。于是,我就想能不能直接修改视图呢。 我用frontpage打开视图,搜到“ms-vh2”,改成“zy-vh2”。奏效。 下面是我添加的自己的style,不是每个定义都有效(好像字体大小、对齐方式等有效,字体颜色等没生效) class="zy-vh2" style="font-family: verdana;font-size: 11px;color: #808080;text-align: left;text-decoration: none;font-weight: normal;vertical-align: top;padding-right:;" 阅读全文

posted @ 2004-11-12 16:42 皮皮 阅读(445) 评论(0) 推荐(0) 编辑

部署webpart我悟出了一些道理

摘要: 其实webpart就是一个web 控件程序,因此从这里我大概知道怎么来部署.netweb控件了。 首先,开发的webpart也好,web控件也好,必须有个强名称,这就要求每次编译时必须加上版本号和密钥文件。 然后,可以将这个控件的实体文件发布到.net环境中去,一般来说会有两种地方,一个是全局GAC,就是系统目录下的Assecmbly目录,另外一个地方就是web站点主目录的Bin目录。 阅读全文

posted @ 2004-11-12 16:41 皮皮 阅读(414) 评论(0) 推荐(0) 编辑

创建一个基本webpart

摘要: 按照sps sdk的文档,我试着自己开发webpart,过程是这样的: 1、使用webpart模板创建一个工程 2、定义输出路径到interput\wwwroot\bin下。 3、设置版本号(每个.net程序都要做的) 4、准备好强名称所需的密钥,我给自己弄了一个zhouyikey.snk,放在c盘根目录下,所有的程序都要用它。 5、接下来就开始编辑代码了,首先检查自己所需的namespace是否都已经引用了 6、定义Toolbox Data,如: 阅读全文

posted @ 2004-11-12 16:40 皮皮 阅读(446) 评论(0) 推荐(0) 编辑

部署Webpart的方法

摘要: 方法一: 7. 在同一个Solution中添加一个CAB安装包工程,加入工程的“主输出”和“内容文件” 8. 生成整个Solution,确认两个工程都成功编译。 添加Web Part 使用下面的方法,来部署和添加“WPHttpRequest.dwp”这个Web Part: stsadm.exe –o addwppack –filename path_to_HTTPRequestCab.cab 1. stsadm.exe 默认在\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin文件夹中。 2. 需要把path_to_HTTPRequestCab.cab改成具体的路径名称,例如C:\HttpRequestCAB.CAB 把C:\Inetpub\wwwroot\bin下的WPHttpRequest.dll文件,拷贝到C:\Windows\assembly目录中,同时,删除C:\Inetpub\wwwroot\bin下的WPHttpRequest.dl 阅读全文

posted @ 2004-11-12 16:39 皮皮 阅读(452) 评论(0) 推荐(0) 编辑

sps编程模型中打开站点的几种方法

摘要: 1、如果你想打开的是你这个WEBPart所在的站点,直接使用SPWeb和SPControl打开。 注意:想要引用Microsoft.sharpoint和Microsoft.Sharpoint.WebControls SPWeb mySite=SPControl.GetContextWeb(Context); 2、如果要访问当前虚拟服务器的其他站点 SPWeb site=SPControl.GetContextSite(Context).AllWebs[@"/C1/文档中心/"]; 阅读全文

posted @ 2004-11-12 16:01 皮皮 阅读(958) 评论(0) 推荐(0) 编辑

SPsite和SPWeb

摘要: 在sps的编程模型中,首先要用到的两个对象就是SPSite和SPWeb。通过这两个对象告诉程序你要访问那个服务器(虚拟服务器)上的哪个站点。但是,刚刚学习sps编程对象模型的时候,总是搞不清楚这两个对象的关系(因为他们总是在一起使用),经过一番折腾,我现在总算有了一些认识。 SPsite用于告诉用户打开哪个服务器,然后,通过SPSite.AllWebs["site_name"],返回一个站点。 SPSite用于告诉用户打开哪个站点。 阅读全文

posted @ 2004-11-12 16:00 皮皮 阅读(1100) 评论(1) 推荐(0) 编辑

可以定制的的走马灯web 部件

摘要: 昨天下午,用了一个下午的时间编写了一个走马灯的webpart。这个Webpart可以自定义字体大小、颜色、宽度、滚动速度等。 在这个走马灯中没有特别的东西,主要的日期的比较。 可能是由于c#语言不是很熟的关系,我不知道有没有函数直接将字符串转换成DateTime型,反正我没找到,于是,我使用了下面这样的程序块来完成这个转换任务。 //获取到期日期 string strDate=item["过期时间"].ToString(); //获取年 string strY=strDate.Substring(0,4); //将代表月和日的字符串村到一个临时变量,如“8-20 0:00:00” string strT=strDate.Substring(5,strDate.Length-5); //现在字符串中只剩下日期前面一个“-”了,获取他的位置 int intIndex=strT.IndexOf("-"); //取出“-“前面的部分,即取出月份 string st 阅读全文

posted @ 2004-11-12 15:59 皮皮 阅读(543) 评论(0) 推荐(0) 编辑

修改日志摘要

摘要: 头看了我的日志摘要部件,觉得还行,当时提出了一点建议和发现了一个bug。建议是:字体放大半号。这点建议我也是同意的,所以,决定要将它改过来。这个改动不会很大,用不了两天,问题出在那个要命的bug上。既然是摘要,当然就不能将文章通篇都显示出来,所以,需要截取一部分。但是,在截取的时候出现问题了,明明设置的是要截取30个字符,结果,他只截取了两三个字。怎么回事? 我将它原来的文字显示出来,这才明白,因为数据库里存放的是超文本格式的文本,也就是说包括超文本标记也保存在里面,如 之类的。所以必须要想办法删除掉这些东西才好。 我想了一个算法,就是通过一个循环查找尖括号,先找到左尖括号,然后,再找到右尖括号,然后,截取尖括号两边的文字相连(删除尖括号及其中的标记),然后,计算出我删掉多少字,在增加多少字。 说起来简单,可是,文档中的问题很多,而且,我还发现一个问题,一旦形成死循环,服务器就会被wp3占据所有的cpu资源,所以,开发这类的东东千万要小心,多测试。 这不这一测就是两天。 阅读全文

posted @ 2004-11-12 15:58 皮皮 阅读(625) 评论(1) 推荐(0) 编辑