ASP.NET 2.0数据教程之五十七:编辑和删除现有的二进制数据
1") { // Use current value for BrochurePath if (category.IsBrochurePathNull()) e.NewValues ["brochurePath"] = null; else e.NewValues["brochurePath"] = category.BrochurePath; } else if (BrochureOptions.SelectedValue == "2") { // Remove the current brochure (set it to NULL in the database) e.NewValues["brochurePath"] = null; } else if (BrochureOptions.SelectedValue == "3") { // Reference the BrochurePath FileUpload control FileUpload BrochureUpload = (FileUpload)Categories.Rows[e.RowIndex].FindControl ("BrochureUpload"); // Process the BrochureUpload bool cancelOperation = false; e.NewValues["brochurePath"] = ProcessBrochureUpload(BrochureUpload, out cancelOperation); e.Cancel = cancelOperation; } else { // Unknown value! throw new ApplicationException( string.Format("Invalid BrochureOptions value, {0}", BrochureOptions.SelectedValue)); } if (BrochureOptions.SelectedValue == "2" || BrochureOptions.SelectedValue == "3") { // "Remember" that we need to delete the old PDF file if (category.IsBrochurePathNull()) deletedCategorysPdfPath = null; else deletedCategorysPdfPath = category.BrochurePath; } } protected void Categories_RowUpdated(object sender, GridViewUpdatedEventArgs e) { // If there were no problems and we updated the PDF file, // then delete the existing one if (e.Exception == null) { DeleteRememberedBrochurePath(); } } 注意 RowUpdating事件处理器是如何根据SelectedValue值的不同而使用一系列的条件 语句来实现相应的功能。 使用上面的代码,我们就可以编辑一个类了,使 用其当前的brochure,或不使用brochure,再或者使用一个新的brochure。在 RowUpdating和RowUpdated事件处理器里设置断点(breakpoints)吧,以便更好 的理解处理流程。 第7步:上传新图片 Picture ImageField的编辑 界面呈现为一个文本框,里面显示的是DataImageUrlField 属性的值。在编辑流 程,GridView控件向ObjectDataSource传入一个参数,参数名为ImageField的 DataImageUrlField属性;参数值为在编辑界面输入文本框里的值。当图片是存储 在文件系统,且DataImageUrlField属性包含的是访问该图片的完整URL时,这样 做是恰当的。在这种情况下,在编辑界面里,文本框将会显示图片的URL。毫无疑 问,默认的界面不允许用户上传新的图片,但用户却可以修改图片的URL值。不过 ,在本教程不会出现这种情况,因为Picture数据是直接存储在数据库的,且 DataImageUrlField属性被设为CategoryID值。 为了更好的理解在本教程 里编辑某行的ImageField时将会发生上什么,我们做如下假设:用户编辑一个 CategoryID值为10行,Picture ImageField呈现为一个文本框,显示10,假设用 户将其改为50后点Update按钮,页面回传,GridView控件最初产生一个名为 CategoryID,值为50的参数。在GridView传递此参数(连同参数CategoryName和 参数Description一起 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |