ASP.NET 2.0数据教程之五十三:从GridView的页脚插入新记录
前的7), 而我们使用RowCommand里设置的PageIndex值话,页面将跳往倒数第2页,而不是 我们期望的末页。而DataBound事件是在添加产品且重新绑定以后才发生,我们在 DataBound事件处理器里设置的PageIndex值才是真正的末页的PageIndex值。
最后,本文用到的GridView看起来相当宽,因为添加产品信息要用到很多 列。因此,最好将它设置为竖向排列。另外我们可以减少输入列来缩小整体宽度 ,也许我们添加新产品时用不到UnitsOnOrder、UnitsInStock、ReorderLevel这 几项,那么在GridView里将其移除即可。 删除UnitsOnOrder、 UnitsInStock、ReorderLevel列后需要做调整,有2种方法: 1.仍然使用 AddProduct方法,不过其需要传入UnitsOnOrder、UnitsInStock、ReorderLevel 列的值。我们可以在Inserting事件处理器中,对上述3列使用“硬编码 ”值或默认值。 2.在ProductsBLL类里对AddProduct方法重载,使其 不需要传入UnitsOnOrder、UnitsInStock、ReorderLevel列的值。然后,在 ASP.NET page页面设置ObjectDataSource使用重载的AddProduct方法。 以 上2种方法都能奏效。在以前的教程里我们使用的是后者,对ProductsBLL类的 UpdateProduct方法多次重载。 总结: DetailsView和FormView控 件拥有内置的inserting插入数据功能,而GridView没有。不过我们可以使用 GridView控件的页脚行来达到此目的。要显示页脚行只需要设置ShowFooter属性 为true。我们可以这样对页脚行进行用户定制:将每一列转换成TemplateField, 并在其FooterTemplate模板定制插入界面。正如我们在本章看到的那样, FooterTemplate 模板可以包含Buttons,TextBoxes, DropDownLists,CheckBoxes, data source controls,validation controls等控 件,除此以外,为了便于用户输入,Add按钮, LinkButton或ImageButton等也是 必需的。 当点击Add按钮后,将调用ObjectDataSource控件的Insert()方 法,进而使用其映射的插入数据方法(具体到本文,即为ProductsBLL类的 AddProduct方法),在调用具体的插入数据方法前,我们需要将插入界面里键入 的数据传递ObjectDataSource控件的InsertParameters集合。要达到该目的,我 们应该在ObjectDataSource控件的Inserting事件处理器里,编程访问插入界面的 Web控件。 本教程探讨了优化GridView外观的技巧。接下来的一系列教程 ,我们看如何使用2进制 数据——比如images, PDFs, Word documents等等,当然还有data Web控件。 作者简介 Scott Mitchell,著有六本ASP/ASP.NET方面的书,是4GuysFromRolla.com的创始人,自 1998年以来一直应用 微软Web技术。Scott是个独立的技术咨询顾问,培训师,作 家,最近完成了将由Sams出版社出版的新作,24小时内精通ASP.NET 2.0。他的联 系电邮为mitchell@4guysfromrolla.com,也可以通过他的博客 http://ScottOnWriting.NET与他联系。 本文配套源码 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |