快速业务通道

ASP.NET 2.0数据教程之四十:自定义DataList编辑界面

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
Discontinued字段赋给Discontinued CheckBox的Checked属性。完成这些后, 浏览页面并点击Edit button.见图9。

ASP.NET 2.0数据教程之四十:自定义DataList编辑界面

图 : 点击Edit Button 显示编辑界面

第五步: 在 UpdateCommand Event Handler保存用户的更改

当用户编辑product并点 Update button后,会postback并激发UpdateCommand事件。在事件处理里,我们 需要从EditItemTemplate里读出web控件的值,并和BLL交互,然后更新数据库里 的product。如我们在前面一章看到的那样,被更新的product的ProductID可以通 过DataKeys集合来获取。用户输入的值可以通过FindControl ("controlID")来编程获取,见下面的代码:

C#

protected void Products_UpdateCommand(object source, DataListCommandEventArgs e)
{
// Make sure the page is valid...
if (!Page.IsValid)
return;
// Read in the ProductID from the DataKeys collection
int productID = Convert.ToInt32(Products.DataKeys[e.Item.ItemIndex]);
// Read in the product name and price values
TextBox productName = (TextBox) e.Item.FindControl("ProductName");
DropDownList categories = (DropDownList)e.Item.FindControl ("Categories");
DropDownList suppliers = (DropDownList) e.Item.FindControl("Suppliers");
CheckBox discontinued = (CheckBox)e.Item.FindControl("Discontinued");
string productNameValue = null;
if (productName.Text.Trim().Length > 0)
productNameValue = productName.Text.Trim();
int categoryIDValue = Convert.ToInt32(categories.SelectedValue);
int supplierIDValue = Convert.ToInt32(suppliers.SelectedValue);
bool discontinuedValue = discontinued.Checked;
// Call the ProductsBLL''s UpdateProduct method...
ProductsBLL productsAPI = new ProductsBLL();
productsAPI.UpdateProduct(productNameValue, categoryIDValue, supplierIDValue,
discontinuedValue, productID);
// Revert the DataList back to its pre-editing state
Products.EditItemIndex = -1;
Products.DataBind();
}

代码首先检查Page.IsValid属性来确保所有的验证控件都返回 合法值。如果Page.IsValid为True,从DataKeys集合里读出被编辑的product 的 ProductID的值,并引用EditItemTemplate里的web控件。然后将这些控件的值读 到变量里,并传给UpdateProduct方法。完成更新后,DataList会返回到编辑前的 状态。

and this example focused. As an exercise, add this functionality after completing this tutorial.

注意:我省略了某章 异常处理,目的是为了使本章的代码看起来目的性更强。你可以在完成本章后自 己添加异常处理的功能作为练习。

第六章: 处理空的CategoryID 和 SupplierID 值

Northwind 数据库允许Products表里的CategoryID和 SupplierID列为空。然而我们的编辑界面目前还没有提供可选空值。如果我们试 图编辑一个无论是CategoryID还是SupplierID为空的product,将会产生 ArgumentOutOfRangeException异常。目前我们也没有将product的category或 supplier的值从一个非空值转换为空值的方法。

为了在DropDownLists里 添加空值,我们需要添加一个ListItem。我将ListItem里的Text显示为" (None)",你可以将它赋为任何你希望的值(比如空字符串)。最后,记得 将DropDownLists的AppendDataBoundItems设为True。如果你没有这么做,绑定到 DropDownList 的categories 和suppliers 会被添加的ListItem覆盖。

完 成这些后,DropDownLists的标记语言看起来应该和下面差不多:

ASP.NET

<asp:DropDownList ID

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号