ASP.NET 2.0数据教程之五十三:从GridView的页脚插入新记录
; /> </FooterTemplate> <ItemStyle HorizontalAlign="Center" /> <FooterStyle HorizontalAlign="Center" /> </asp:TemplateField> </Columns> </asp:GridView> 在浏览器里查看该页面时,GridView控 件的页脚行显示为一个比较完善的插入界面(如图10所示)。此时,插入界面并 不包含一种方法将输入的数据添加进数据库。并将我们也没有阐述那些键入的数 据是如何转换成一条记录的。在第4步,我们将看到如何添加一个“Add ”按钮,在页面回传后如何执行代码。在第5步,我们看如何将键入的数据 转换成一条记录添加到数据库。 图10:GridView的页脚行提供了添加新记录的界面 第4步:在插 入界面添加Add按钮 如前所述我们需要在界面添加一个Add按钮,我们可以 在某个FooterTemplate里或另外增加一列来放置该按钮来达到这个目的。在本教 程,我们在ProductID TemplateField的FooterTemplate里添加该按钮。 点击GridView的智能标签中的“编辑模板”,选择ProductID对应的 FooterTemplate ,添加一个Button Web控件(LinkButton 或是ImageButton,只 要你喜欢), 设ID为AddProduct;CommandName属性为Insert;Text属性为 “Add”,如图11所示: 图11:将Add Button放在ProductID TemplateField的FooterTemplate 模板 添加按钮后,在浏览器查看该页面。如果我们在界面输入无效的数据 ,再点Add按钮时,页面回转中断,同时ValidationSummary控件详细的列出了那 些无效数据(如图12)。当输入适当的数据后,再点按钮,将引发页面回传,但 是没有记录添加到数据库里。我们需要编写代码实现插入数据的功能。 图12:如果输入的是无效数据,将会使页面回转中断 注意: 界面里的validation控件未被设置为一组,当页面中只有插入界面包含 validation控件的话,运行没问题。但是,如果在页面中还有其它的validation 控件的话(比如,如果还存在一个编辑界面,其中也包含validation控件),我 们应该将插入界面里的validation控件和Add按钮的ValidationGroup属性设置为 同一个值,使其为一个特定的确认组。关于这方面的更多细节请参阅文章 《Dissecting the Validation Controls in ASP.NET 2.0 》(译注:网址为 http://aspnet.4guysfromrolla.com/articles/112305-1.aspx) 第5步: 向表Products添加一条新记录 当使用GridView控件的内置的编辑功能时, GridView会自动的处理编辑产品所必要的工作。当点击编辑按钮时,它把在编辑 页面键入的数据拷贝到ObjectDataSource的UpdateParameters参数集包含的参数 ,再调用ObjectDataSource控件的Update()方法执行更新。由于GridView没有提 供内置的功能供插入数据,我们必须编写代码调用ObjectDataSource控件的 Insert()方法,将在插入界面键入的数据复制到 ObjectDataSource控件的 InsertParameters集合里。 就像在教程28章《GridView里的Button》里探 讨的一样,任何时候,只要点击 GridView控件里的Button, LinkButton或 ImageButton,发生页面回转时引发GridView的RowCommand事件。不管这些 Button, LinkButton、ImageButton控件是显式添加的(比如,在页脚行添加的 Add按钮),或者是GridView控件自动添加的(比如启用分页功能或排序功能时, 顶部的出现的那些LinkButton)。 为相应用户点击Add按钮,我们要为 GridView的RowCommand事件创建一个事件处理器。由于任何时候点击GridView控 件的任何Button, LinkButton或ImageButton都会触发该事件,我们必须指定当传 入事件处理器的CommandName属性值与Add按钮的一致时(即: “Insert& |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |