七、 练习5:把数据动态地添加到股票报告上
说明 在上一个练习中,你用编程方式填充对象集合。在本练习中,你将学习如何动态地从你的网站把信息添加到你的数据源。该信息能够在你的报表中得到自动更新。
详细步骤
1. 添加控件到Web表单。
· 在Design视图中打开Default.aspx文件。
· 为了在Design视图中打开一个ASPX页面,首先打开文件,然后点击在该表单底部的Design按钮。
· 点击CrystalReportViewer控件来选择它。
· 按下左箭头键,以便出现闪烁的光标,并且按回车键从视图中往下移动四次。
· 从工具箱中,把一个TextBox控件拖动到Web表单。
· 从Property菜单下,把ID设置为symbol。
· 把第二个TextBox控件拖动到Web表单。把这第二个TextBox放到第一个下面。
· 从Property菜单下,把ID设置为price。
· 把第三个TextBox控件拖动到Web表单。把这第三个TextBox控件放到第二个下面。
· 从Property菜单下,把ID设置为volume。
· 现在,你可以发现把文本添加在每一个文本框旁边极有助于标识哪个控件相应于哪个参数。
· 然后,从工具箱中,把一个按钮控件拖动Web表单上。把该按钮放到这三个TextBox控件下。
· 从Property菜单下,把该按钮的ID设置为addStockInformation。
· 把该按钮的Text设置为“Add Stock Information”。
· 最后,双击“Add Stock Information” 按钮。
· 双击按钮控件将打开Code-behind类并且自动生成一个addStockInformation_click()事件处理器。
2. 把信息添加到集合。
· 在addStockInformation_click()事件处理器中,创建并且实例化一个新的Stock对象。
Stock temp = new Stock(); |
· 在addStockInformation_click()方法中,创建一个try/catch块。
· 输入到一个Web表单中的信息属于String类型。因为Stock类中的两个字段都是numerical型,所以你需要编写代码来把Web表单中的String值转换为numerical值。try/catch语句有助于保护你的web应用程序免于崩溃—在类型转换出现错误匹配期间。
· 在Try块中,把在Web表单中的symbol字段的值赋值到Stock对象的Symbol属性。
temp.Symbol = symbol.Text;
· 在下一行中,把在Web表单中的price字段的值赋值到Stock对象的Price属性。注意,在赋值之前,要把Web表单中的这个值转化为一个Double。
temp.Price = Convert.ToDouble(price.Text); |
· 然后,把在Web表单中的volume字段的值赋值到Stock对象的Volume属性。注意,在赋值之前,要把Web表单中的这个值转化为一个整数。
temp.Volume = Convert.ToInt32(volume.Text); |
· 在try/catch块的外面,把“Stock Object”添加到stockValues ArrayList。
· 更新当前存在于Session中的stockValues的值。
Session["stockValues"] = stockValues; |
· 最后,调用ConfigureCrystalReports()方法。这将把报告重新绑定到这个更新过的stockValues—一个对象集合。
ConfigureCrystalReports(); |
· 从Build菜单下,点击“Build Solution”。
· 如果你遇到任何构建错误,则现在就修改。
· 从Debug菜单下,点击“Start Debugging”。
· 如果没有出现构建错误,Default.aspx页面将使用三个缺省值加载到你的浏览器。为了添加其它值,适当地填充文本框并且点击“Add Stock Information”按钮。报告将会被动态地更新。
· 当你运行你的网站时,报告将装载到你的浏览器窗口中—使用三个缺省值(你是在练习4中以编程方式添加的)。在报告上面共有三个TextBox控件和一个按钮控件。使用这些控件,你可以动态地更新你的一个对象集合,并且看到这一更新的结果会反映到你的报告中。
· 关闭Internet Explorer窗口。