Monthly Archives: September 2008

实习第八周

本周基本是国庆的预备周,期待着整整一周的休息。 不知不觉其实‘上班’已经两个月,上班的日子比起学习的日子来是不舒服的,至少作息时间上不是自己掌握的,比朝九晚五还夸张,天天7点起床。 慢慢习惯了手头的工作:项目+一些杂事,基本上来说算是能够handle的比较随心所欲。由于下周要花比较多时间休息和复习保研,所以本周就得完成较多的工作。 帮手同学开始帮忙了,沉静了很长时间,当然对作品本身是有怀疑的,至少自己不能接受这样的产品。好在总比没有好,算是一个开端吧。 慢慢学会用标准ASP.net进行开发,而不是自己写很多代码:其实Detail View和Grid View两个工具非常高级,几乎可以搞定全部的增删改查。可惜知道的晚了一些,代码浪费的多了一些,而且为了整体统一还得继续浪费代码。 在新的模块中准备尝试使用这种开发方式,这才是ASP.net的魅力所在吧。 即便开发完这个系统,希望能够花更多的时间对这个Framework的架构和ASP.net的各个设计能够好好理解掌握。第一次发现掌握一门技术其实比略懂很多技术要有意义有兴趣的多。这看来又是一个很好的开端。 其实这段时间有点不是很confident,直到被人教育。虽然我一直崇尚的哲学史人人品等,或者说大家其实实力类似,这似乎成了我没有自信的理由。希望这种日子早点过去,人生的闪光早点到来! 再次期待国庆。

Posted in 未分类 | Leave a comment

在ASP.NET中使用ObjectDataSource数据控件和GridView操作数据

通过前两次的内容我们已经实现了带有分页和排序的显示数据,那么我们如何用ObjectDataSource来帮助我们实现删改 还是老办法我们先实现DAL层和BLL层当中的操作数据的方法 [DataObjectMethod(DataObjectMethodType.Insert)] public static void InserUserInfo(UserInfo info) { DAL.UserInfoDAL.InsertUserInfo(info); } [DataObjectMethod(DataObjectMethodType.Update)] public static void UpdateUserInfo(UserInfo info) { DAL.UserInfoDAL.UpdateUserInfo(info); } [DataObjectMethod(DataObjectMethodType.Delete)] public static void DeleteUserInfo(UserInfo info) { DAL.UserInfoDAL.DeleteUserInfo(info); } 这里我们可以发现我这里传递的都是UserInfo对象了.至于好处嘛,我认为你在赋值的时候通过属性对其处理安全性更好一些.反正我总觉得比传一大堆的变量过来要好.所以这里采用这个方式. 如果你要采用我这种方式那么就需要注意你的ObjectDataSource中的一个属性是否正确设置了 这里我设置为我查询出的对象UserInfo 这样你就可以来实现删除和修改了.有些人就问呀!我没有像以前那样设置传递的参数啊.^_^ 这里当你设置了ObjectDataSource的DataObjectTypeName,当你执行相关操作的时候 ObjectDataSource就会自动生成一个你设置的对象并且将行内的值一一对应的传入到你的这个对象.然后直接将这个对象传入到你的BLL中的方 法.但是要注意,这里还是有很多陷阱的 第一个陷阱 由数据冲突引起的问题 在ObjectDataSource中有个属性↑ 这里属性来设置如何处理是否新旧值一起处理 … Continue reading

Posted in 技术博客 | Leave a comment

ASP.net页面和控件生命期

1. 点击按钮postback或页面第一次载入都会导致页面信息失效,任何private变量都会重新构造,但postback的数据会恢复。 2. 数据构造好后进入页面的page_load,然后进入控件的page_load,如果在页面load中对控件进行调用,则该调用在控件page_load之前执行。 3. 如果点击按钮,则按钮的函数会在page_load都结束后执行,如果在这里对控件进行调用,则该调用在控件page_load之后执行。 4. 因此无法保证控件的page_load一定是控件第一次被执行的函数,所以如果对于消息类的控件,需要初始化,则需要显示构造初始化函数,由页面的page_load显示调用,该调用可以保证永远在任何函数前执行。

Posted in 技术博客 | Leave a comment

Asp.net中访问Excel权限问题

正确的做法: 1:在服务器上安装office的Excel软件. 2:在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务” 3:依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置” 4:在”DCOM配置”中找到”Microsoft Excel 应用程序”,在它上面点击右键,然后点击”属性”,弹出”Microsoft Excel 应用程序属性”对话框 5:点击”标识”标签,选择”启动用户”//默认访问,不要选交互式用户 6:点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加一个”NETWORK SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限. 7:依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK SERVICE”用户,然后赋予”本地访问”权限. 如果是8000401a错误 右键打开属性对话框,点击”标识”选项卡, 点”下列用户”,把管理员的用户密码正确填写进去… 点击”安全”选项卡, 依次把”启动和激活权限”,”访问权限”,”配置权限”,都选择为自定义, 然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限… 这样,我们便配置好了相应的Excel的DCOM权限.

Posted in 技术博客 | Leave a comment

实习第七周

本周主要做的是遗留的学生信息管理功能以及新闻发布功能。其中也学到了很多知识。 比如Page的生命期问题,private变量的值是不保持的,每次页面load都会重新计算,当然如果在定义时设定了一个初始值,则每次还是会按照那个值进行初始化。一种避免的办法是和一个Hidden变量绑定,从而只要在页面第一次载入的时候初始化即可。 在FCKEditor集成的方面应该说也做了很多工作,但比想象的来的简单。下载最新版的控件以及C#的dll类以后,简单设置即可完成强大的功能。甚至这个控件也可以完成附件上传等功能。唯一遗憾的是,粘帖本地附件不能自动上传(比如word中的图片) 对于一些控件的参数传递也有了更好的了解,如果绑定了参数则不需要进一步的工作,否则需要截获datasource的selecting消息,在这里添加param信息。

Posted in 未分类 | Leave a comment

ASP.net page private对象生命期

private 变量每次post都会初始化,但是如果在静态变量的地方有默认定义,则按照此定义初始化,否则为空或其它默认值。不重要的数据可以通过绑定 hiddenfield的方式避免每次load界面初始化,而只在第一次进入页面的时候初始化。重要的数据还是只能每次赋值。

Posted in 技术博客 | Leave a comment

FCKEditor配置

一、准备工作 首先下载最新版的FCKeditor V2.3,下载地址:http://prdownloads.sourceforge.net/fckeditor /FCKeditor_2.3.zip?download;这个压缩包里并不包含ASP.NET要用到的DLL控件,所以还要下载另外一个压缩包,下载地 址:http://sourceforge.net/project/showfiles.php?group_id=75348& package_id=137125。把第一个文件解压到WEB根目录,默认文件夹名为:FCKeditor;再把第二个包解压,里面包含了源代码,如果 你想自己再次开发,可以双击 FredCK.FCKeditorV2.csproj文件,打开VS.NET进行修改,所用的语言是C#;不想修改的话,直接把bin\Release下 面的FredCK.FCKeditorV2.DLL文件拷到WEB目录的bin下面。 二、精简文件 因为只用到ASP.NET,所以有必要精简一下文件。 进入FCKeditor文件夹,把所有“_”开头的文件和文件夹删掉,这些都是一些范例,只保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了; 进入editor文件夹,删掉“_source”文件夹,里面放的同样是源文件; 退回上一级目录进入filemanager文件夹,有browser和upload两个文件夹。进入browser\default\connectors,只保留aspx文件夹,其余的删掉;mcpuk目录亦可删除;upload也一样,只保留aspx文件夹; 退到editor再进入images文件夹,smiley里面放的是表情图标,有msn和fun两个系列,如果你想用自己的表情图标,可以把它们都删除;如果你想用这里的表情图标那就不要删了; lang里面放的是语言包,如果只是用简体中文,那么只保留fcklanguagemanager.js、zh-cn.js两个文件就行了,建议也保留 en.js(英文)、zh.js(繁体中文)两个文件,fcklanguagemanager.js是语言配置文件,有了它才能和 fckconfig.js里的设置成对,对应上相应的语言文件,一定要保留! 再退出lang文件夹,进入skins文件夹,如果你想使用FCKeditor默认的奶黄色,那就把除了default文件夹外的另两个文件夹直接删除,如果想用别的,那就看你自己的喜好了,不要上传文件的话把filemanager也删除算了。 至此,文件精简完毕,由原来的2.55M变成现在的689K了。接着修改设置。 三、修改设置 打开位于根目录的fckconfig.js文件。 FCKConfig.SkinPath = FCKConfig.BasePath + ‘skins/default/’ ;这行是设置皮肤的,如果精简时保留了silver,就把路径改成skins/silver,默认就不用管它了; FCKConfig.DefaultLanguage = ‘en’ ;设置默认语言,把en改成zh-cn,即简体中文; FCKConfig.TabSpaces = 0;如果在编辑过程中要用到TAB键,就把0改成1; 因为FCKeditor默认是ASP的,所以要把它换成ASP.NET。把ASP跟其它被注释掉的代码删掉,用ASP.NET来代替。例如: var _FileBrowserLanguage    = ‘aspx’ … Continue reading

Posted in 技术博客 | Leave a comment

编程设置ObjectDataSource参数

图 7: 选择GetEmployeesByHiredDateMonth(month)方法 最后一屏要求我们给month参数提供参数源。既然我们将编码设置这个值,就让参数源维持它的默认选项None,点击“完成”。 图 8: 让参数源设置为None 这将在ObjectDataSource的SelectParameters集合里创建一个未指定参数值的Parameter对象。 阅读 编辑 运行 复制 保存 <asp:ObjectDataSource ID=”ObjectDataSource1″ runat=”server” OldValuesParameterFormatString=”original_{0}” SelectMethod=”GetEmployeesByHiredDateMonth” TypeName=”EmployeesBLL”> <SelectParameters> <asp:Parameter Name=”month” Type=”Int32″ /> </SelectParameters> </asp:ObjectDataSource> <asp:ObjectDataSource ID=”ObjectDataSource1″ runat=”server” OldValuesParameterFormatString=”original_{0}” SelectMethod=”GetEmployeesByHiredDateMonth” TypeName=”EmployeesBLL”> <SelectParameters> <asp:Parameter Name=”month” Type=”Int32″ /> </SelectParameters> </asp:ObjectDataSource> 要编码设置这个参数值,我们需要给ObjectDataSource的Selecting事件添加一个事件委托。为了实现这一点,到设 … Continue reading

Posted in 技术博客 | Leave a comment

有关ASP.net

控件的值可以postback;不是控件的值刷新后会消失(比如private变量或者Page.Title之类属性) GridView在页面post的时候压根不重复取数据,而是在页面的代码中自动重新绑定才去获取数据,即数据的重新获取是手动的,肯定在button事件之后。

Posted in 技术博客 | Leave a comment

ObjectDataSource强类型源对象示例

注意:由于GridView的参数解析可能有问题,如果自定义函数的参数中有除了sortColumns的参数,即page的参数,必须在grid和objectdatasource都定义page为true ASP.NET ObjectDataSource 强类型源对象示例 阐释可以和 ObjectDataSource 控件一起使用的自定义中间层业务对象。 示例 下面的代码示例阐释可以和 ObjectDataSource 控件一起使用的自定义中间层业务对象,该控件使用 DataObjectTypeName 属性来指定一个强类型源对象。本主题还阐释了一个将业务对象用作 ObjectDataSource 控件的源的示例 ASP.NET 页。该页包含与 ObjectDataSource 控件绑定的 GridView 控件和 DetailsView 控件。 若要使用该代码,您可以在 Web 应用程序的 App_Code 子目录中创建一个代码文件,然后将代码复制到该文件。然后,业务对象将被动态编译并作为 Web 应用程序的一部分包含在应用程序中。或者,您可以编译业务对象,然后将它放入 ASP.NET 应用程序的 Bin 目录中或全局程序集缓存 (GAC) 中。有关 App_Code 和 Bin 目录的更多信息,请参见 … Continue reading

Posted in 技术博客 | Leave a comment