网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 2.0高级数据处理之冲突检测

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
nd语法的双向(two-way)数据绑定字段的旧值都会被保留。对于Delete来 说,这意味着在ItemTemplate中你必须给数据绑定的值使用Bind语法,其目的是为了保留删除操作所需要的旧值。下面的例子演示了这种技术。

<asp:GridView ……>
  <Columns>
  <asp:CommandField ShowDeleteButton= "True" ShowEditButton="True" />
  <asp:TemplateField HeaderText= "ContactID" InsertVisible="False" SortExpression="ContactID">
   <ItemTemplate>
    <asp:Label ID= "Label1" runat="server" Text=''<%# Bind("ContactID") %>''></asp:Label>
   </ItemTemplate>
   <EditItemTemplate>
    <asp:Label ID= "Label3" runat="server" Text=''<%# Eval("ContactID") %>''></asp:Label>
   </EditItemTemplate>
  </asp:TemplateField>
  <asp:TemplateField HeaderText= "ContactName" SortExpression="ContactName">
   <ItemTemplate>
    <asp:Label ID= "Label2" runat="server" Text=''<%# Bind("ContactName") %>''></asp:Label>
   </ItemTemplate>
   <EditItemTemplate>
    <asp:TextBox ID= "TextBox1" runat="server" Text=''<%# Bind("ContactName") %>''></asp:TextBox>
   </EditItemTemplate>
  </asp:TemplateField>
 </Columns>
</asp:GridView>

  你可以温和地处理冲突检测错误,可以通过提示用户下层数据被改变了,向用户显示改变过的值, 让用户选择提交或放弃自己的操作。下面的例子演示处理冲突检测的一种可行方法。请注意,DetailsView的RowUpdated事件参数传递了可用 于检测用户输入的值的字典。你还可以设置这个事件参数的KeepInEditMode属性,使用户在决定如何处理冲突期间,DetailsView处于编 辑模式。这个例子所试验方法与上面一个例子类似,同时打开两个窗口来创建冲突更新。

Protected Sub DetailsView1_ItemUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdatedEventArgs)
  If e.AffectedRows = 0 Then
  '' 使DetailsView处于编辑模式并与数据库同步
  e.KeepInEditMode = True
  DetailsView1.DataBind()
 
  '' 用用户输入的值重新填充DetailsView
  Dim t As TextBox
  t = DetailsView1.Rows(1).Cells(1).Controls(0)
  t.Text = e.NewValues( "OrderDate")
  t = DetailsView1.Rows(2).Cells(1).Controls(0)
  t.Text = e.NewValues( "ShipCountry")

  ErrorPanel.Visible = True
 Else
  ErrorPanel.Visible = False
 End If
End Sub

Protected Sub DetailsView1_ModeChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewModeEventArgs)
 If e.CancelingEdit = True AndAlso ErrorPanel.Visible = True Then
  ErrorPanel.Visible = False
 End If
End Sub

  使用ObjectDataSource的时候,情况也类似。请注意,由于数据源的ConflictDetection属性被设置为CompareAllV
  • 下一篇资讯: WMI使用教程(译)
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号