Scott Mitchell的ASP.NET 2.0数据教程之五:声明参数
地指定了这些ProductBLL的方法从而实现插入、更新和删除,因此 ,除非你明确地清除它们,否则它们将包含在上面的标记里。
当访问本页 面,Data Web服务器控件将调用ObjectDataSource的Select方法,这将调用类 ProductsBLL的GetProductByProductID(productID),并使用“5”这 个硬编码的值作为输入参数productID 。此方法将返回一个强类型的 ProductDataTable对象,它包含一个数据行 - Chef Anton’s Gumbo Mix的 信息(ProductID为5的产品)。 图 5: 显示Chef Anton’s Gumbo Mix的相关信息设置Web控件的 属性作为参数源 OjbectDataSource控件的参数值也可以设置为基于页面上 的Web控件的值。为了说明这一点,我们举一个使用GridView来显示位于用户指定 的国家的供应商的例子。首先,在页面上添加一个TextBox控件让用户输入国家名 称。这个TextBox控件的ID属性设为CountryName 。再添加一个按钮控件到页面。 图 6: 添加一个ID为CountryName的TextBox控件到页面 Next, add a GridView to the page and, from the smart tag, choose to add a new ObjectDataSource. Since we want to display supplier information select the SuppliersBLL class from the wizard’s first screen. From the second screen, pick the GetSuppliersByCountry(country) method. 然 后,添加一个GridView控件到页面,从它的智能标记,选择添加一个新的 ObjectDataSource 。因为我们要显示供应商信息,所以在配置数据源向导第一屏 选择类SuppliersBLL 。第二屏,选择GetSuppliersByCountry(country)方法。 图 7: 选择GetSuppliersByCountry(country) 方法 因为 GetSuppliersByCountry(country)方法有一个输入参数,所以向导再次显示最后 一屏,让你选择参数的值。这一次,设置参数源为Control,这时会出现一个 ControlID下拉列表,列表中包含页面上所有控件的名称;从中选择CountryName 控件。由于第一次访问本页面时文本框CountryName会为空白,那么就没有值从它 返回,也就不显示任何数据。如果你希望默认显示一些结果,那么要在 DefaultValue文本框里输入一个默认的参数值。 图 8: 设置CountryName控件的值作为参数值 ObjectDataSource 的声明标记跟我们的第一个例子会稍有不同。使用一个 ControlParameter替代了 标准的Parameter对象。ControlParameter具有一些额外的属性用来指定Web控件 的ID,还有用作参数的属性值(PropertyName)。配置数据源向导足以帮我们决 定,例如TextBox,我们很有可能会使用它的Text属性作为参数值。然而,如果你 需要使用Web控件的一个不同的属性值,那么你需要在这里更改PropertyName属性 ,或者从配置数据源向导里点击“高级属性”。
当第一次访问该页面时,文本 框CountryName里的内容是空白的。GridView控件仍然会调用ObjectDataSource的 Select方法,但是,一个空值会被传入GetSuppliersByCountry(country)方法。 表适配器(TableAdapter)会将这个null值转换成数据库里的NULL值 (DBNull.Value),然而GetSuppliersByCountry(country)方法所使用的查询已 经写明在传入一个NULL值错位参数@CategoryID时将不 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |