DataList控件更新和删除记录

cxy10172002 2005-02-22 02:14:51
在DataList控件中如何写模板,可以更新和删除记录?
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuiyun 2005-03-30
  • 打赏
  • 举报
回复
可允许用户以各种方法删除 DataList 控件中的项。一种方法是在项中包含“删除”按钮,当用户单击它时立即删除该项。

另一种方法是在单个项中包括复选框。用户随后可以选中要移除的所有项,然后单击单独的“删除”按钮成批删除它们。此方法在如 MSN Hotmail 这样的程序中使用。

允许用户删除单个项

在 ItemTemplate 中(和 AlternatingItemTemplate 中,如果要使用它的话),添加一个 Button 或 LinkButton Web 服务器控件。将此按钮的 CommandName 属性设置为 delete(区分大小写)。
为 DeleteCommand 事件创建事件处理程序。有关详细信息,请参见在 Web 窗体页中创建事件处理程序。在此方法中:
从数据源中删除项,然后重新绑定 DataList 控件。用户所单击项的索引可以通过 Item 对象的 ItemIndex 属性获得。若要获取单个控件的值,请使用 Item 事件参数对象的 FindControl 方法。
将控件重新绑定到它的数据源。
如果数据源是 DataTable 对象,则事件处理程序可能类似如下所示:

' Visual Basic
Private Sub DataList1_DeleteCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) _
Handles DataList1.DeleteCommand
' Code to delete the item from the data source.
Dim aTable As DataTable
aTable = CType(DataList1.DataSource, DataTable)
aTable.Rows(e.Item.ItemIndex).Delete()
' Bind the data after item is deleted.
DataList1.DataBind()
End Sub

// C#
private void DataList1_DeleteCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
// Code to delete the item from the data source.
DataTable aTable = (DataTable)DataList1.DataSource;
aTable.Rows[e.Item.ItemIndex].Delete();
// Bind the data after the item is deleted.
DataList1.DataBind();
}
允许用户一次删除多个项

在 ItemTemplate(如果使用,还有 AlternatingItemTemplate)中,添加 CheckBox Web 服务器控件并将其 ID 属性设置为“删除”。请确保该 CheckBox 控件的 AutoPostBack 属性为 false。通过右击 DataList 控件并从菜单中选择“结束模板编辑”,关闭模板编辑。
将 Button Web 服务器控件添加到 Web 窗体页。将 Text 属性设置为“全部删除”,并将 ID 属性设置为 DeleteAll。此按钮不添加到 DataList 模板之一。
为“全部删除”按钮的 Click 事件创建方法。在方法中:
依次通过 DataList 控件的 Items 集合,按顺序提取每一项。
在项内,使用该项的 FindControl 方法获取步骤 1 的 CheckBox 控件,然后测试其 Checked 属性。
如果该框处于选中状态,则从数据源中删除相应的项。
将 DataList 控件重新绑定到它的数据源。
下面的示例显示 DeleteAll 按钮的事件处理程序,它使用上面所述的过程成批删除项。

' Visual Basic
Private Sub DeleteAll_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles DeleteAll.Click
Dim isDeleted As Boolean
Dim anItem As DataListItem

' Check each box and see if the item should be deleted.
For Each anItem In DataList1.Items
isDeleted = CType(anItem.FindControl("Delete"), CheckBox).Checked
If isDeleted Then
' Add code here to delete the item, using anItem.ItemIndex.
End If
Next
DataList1.DataBind()
End Sub

// C#
protected void DeleteAll_Click(object sender, System.EventArgs e)
{
bool isDeleted;

// Check each box and see if the item should be deleted.
foreach (DataListItem anItem in DataList1.Items)
{
isDeleted =
((CheckBox)anItem.FindControl("Delete")).Checked;
if (isDeleted)
{
// Add code here to delete the item, using anItem.ItemIndex.
}
}
DataList1.DataBind();
}
chuiyun 2005-03-30
  • 打赏
  • 举报
回复
可以允许用户编辑 DataList Web 服务器控件中的单个项。当将单个项置于编辑模式中时,其可编辑值通常显示在用户可更改值的文本框或其他控件中。

允许用户编辑 DataList 控件中的项

创建 ItemTemplate(和 AlternatingItemTemplate,如果要使用它的话),然后向其添加 Button Web 服务器控件。将此按钮的 CommandName 属性设置为 edit(区分大小写)。有关详细信息,请参见创建 Web 服务器控件模板。
注意 可以在调用 Button 的任何步骤中使用 LinkButton 或 ImageButton。
为 DataList 控件创建 EditItemTemplate,它包括下列内容:
用户可更改的所有值的控件。例如,它包括所有字符和数值数据的 TextBox 控件。使用 DataBinding 属性设置这些控件的数据源。有关信息,请参见 Web 窗体页中的数据访问。
Text 属性为“更新”的 Button 控件,该控件的 CommandName 属性设置为 update(区分大小写)。
Text 属性为“取消”的 Button 控件,该控件的 CommandName 属性设置为 cancel(区分大小写)。
“更新”按钮将使用户得以指定他们已完成编辑。“取消”按钮将允许用户在不保存更改的情况下退出编辑。

为控件的 EditCommand 事件创建一个事件处理程序。有关详细信息,请参见在 Web 窗体页中创建事件处理程序。在事件处理程序中,执行下列操作:
将 DataList 控件的 EditItemIndex 属性设置为要转入编辑模式的项的索引值。用户所单击项的索引可以通过 Item 对象的 ItemIndex 属性获得。
将控件绑定到它的数据源。
该事件处理程序类似如下所示:

' Visual Basic
Private Sub DataList1_EditCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) _
Handles DataList1.EditCommand
DataList1.EditItemIndex = e.Item.ItemIndex
DataList1.DataBind()
End Sub

// C#
private void DataList1_EditCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;
DataList1.DataBind();
}
为 UpdateCommand 事件创建一个方法,该方法读取当前项中的编辑控件值,并将其写回到数据源。若要获取该项中特定控件的值,请使用 Item 事件参数对象的 Control.FindControl 方法。更新数据源后,通过将 EditItemIndex 属性设置为 -1,将该项切换出编辑模式,然后重新绑定到数据源。
安全说明 Web 窗体页中的用户输入可能包含潜在的恶意客户端脚本。默认情况下,Web 窗体页验证用户输入是否不包括脚本或 HTML 元素。有关更多信息,请参见脚本利用和在 Web 应用程序中防止脚本利用。
' Visual Basic
Private Sub DataList1_UpdateCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) _
Handles DataList1.UpdateCommand
Dim quantity As TextBox
quantity = CType(e.Item.FindControl("quantity"), TextBox)
Dim newQuantity As String = quantity.Text
' Add code here to update the Quantity value of the data source
' using the newQuantity variable. Note that newQuantity is a
' string and would have to be converted to a number.
DataList1.EditItemIndex = -1
DataList1.DataBind()
End Sub

// C#
private void DataList1_UpdateCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
TextBox quantity;
quantity = (TextBox)(e.Item.FindControl("Quantity"));
string newQuantity = quantity.Text;
// Add code here to update the Quantity value of the data source
// using the newQuantity variable. Note taht newQuantity is a
// string and would have to be converted to a number.
DataList1.EditItemIndex = -1;
DataList1.DataBind();
}
为 CancelCommand 事件创建一个方法,该方法将 EditItemIndex 属性设置为 -1,然后重新绑定到数据源:
' Visual Basic
Private Sub DataList1_CancelCommand(ByVal source As Object, _
ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) _
Handles DataList1.CancelCommand
' Switch out of edit mode.
DataList1.EditItemIndex = -1
DataList1.DataBind()
End Sub

// C#
private void DataList1_CancelCommand(object source,
System.Web.UI.WebControls.DataListCommandEventArgs e)
{
// Switch out of edit mode.
DataList1.EditItemIndex = -1;
DataList1.DataBind();
}
4.1 使用控件显示文本 实例 显示密码格式文本 实例 显示长日期格式时间 实例 显示金额格式文本 4.2 使用控件显示图片 实例 显示验证码图片 实例 动态显示用户头像 实例 使用网页对话框显示图片 实例 实现上传图片 实例 GridView控件显示商品缩略图 4.3 控件的超级链接 实例 ImageButton按钮超级链接查看商品详细信息 实例 GridView控件中使用超级链接模板列查看详细信息 实例 DataList控件模板中使用LinkButton查看详细信息 4.4 下拉列表框的应用 实例 间接改变DropDownList当前选项 实例 实现多个DropDownList控件的联动 实例 动态添加、删除DropDownList控件选项 4.5 单选按钮的应用 实例 性别选择 实例 网络考试系统中单选题答案的选择 4.6 复选框的应用 实例 登录身份选择 实例 网络考试系统中多选题答案的选择 4.7 控件连接数据源 实例 通过向导配置AccessDataSource 实例 通过向导配置SqlDataSource 实例 通过向导配置XmlDataSource 4.8 GridView控件的应用 实例 数据绑定并实现分页功能 实例 选中、编辑、取消、删除数据项 实例 GridView实现正反双项排序功能 实例 GridView控件中DropDownList控件的绑定 实例 通过CheckBox删除选中记录 实例 删除GridView控件行信息弹出确认提示框 实例 在GridView控件中实现自动编号 实例 GridView控件实现主细表 实例 查看当前页详细信息 实例 单元格中指定字符串固定长度 实例 供求信息网审核发布信息 实例 根据学生成绩合格与不合格显示不同颜色 4.9 DataList控件的使用 实例 绑定数据并实现分页 实例 编辑DataList控件模板显示员工信息 实例 DataList控件实现主细表 实例 DataList控件实现删除功能 4.9 Repeater控件的使用 实例 Repeater控件数据绑定 实例 Repeater控件分页 实例 编辑Repeater控件标识商品信息
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 主/从 使用DropDownList过滤的主/从报表 使用两个DropDownList过滤的主/从报表 跨页面的主/从报表 使用GridView 和DetailView实现的主/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件中使用TemplateField 在DetailsView控件中使用TemplateField 使用FormView 的模板 在GridView的页脚中显示统计信息 编辑插入和删除数据 概述插入、更新删除数据 研究插入、更新删除的关联事件 在ASP.NET页面中处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource中使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak
导言 创建一个数据访问层 创建一个业务逻辑层 母板页和站点导航 基本报表 使用ObjectDataSource展现数据 声明参数 编程设置ObjectDataSource的参数值 主/从 使用DropDownList过滤的主/从报表 使用两个DropDownList过滤的主/从报表 跨页面的主/从报表 使用GridView 和DetailView实现的主/从报表 自定义格式化 基于数据的自定义格式化 在GridView控件中使用TemplateField 在DetailsView控件中使用TemplateField 使用FormView 的模板 在GridView的页脚中显示统计信息 编辑插入和删除数据 概述插入、更新删除数据 研究插入、更新删除的关联事件 在ASP.NET页面中处理BLL/DAL层的异常 给编辑和新增界面增加验证控件 定制数据修改界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 分页和排序 分页和排序报表数据 大数据量时提高分页的效率 排序自定义分页数据 创建自定义排序用户界面 自定义按钮行为 GridView里的Button 使用DataList和Repeater显示数据 用DataList和Repeater来显示数据 格式化DataList和Repeater的数据 使用DataList来一行显示多条记录 数据控件的嵌套 使用DataList和Repeater过滤数据 使用DropDownList过滤的主/从报表 跨页面的主/从报表 使用Repeater和DataList实现的主/从报表 使用DataList编辑和删除数据 综叙:在DataList里编辑和删除数据 批量更新 处理BLL和DAL的异常 在编辑和插入界面里添加验证控件 自定义DataList编辑界面 实现开放式并发 为删除数据添加客户端确认 基于用户对修改数据进行限制 DataList和Repeater的分页和排序 DataList和Repeater数据分页 DataList和Repeater数据排序(一) DataList和Repeater数据排序(二) DataList和Repeater数据排序(三) DataList和Repeater的自定义按钮行为 DataList和Repeater里的自定义button 从ASP.NET页面直接访问数据库 47 使用SqlDataSource 控件查询数据(Reeezak) 48 在SqlDataSource中使用参数化查询(Reeezak) 49 使用SqlDataSource插入、更新以及删除数据(Reeezak

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧