zoukankan      html  css  js  c++  java
  • ObjectDataSource用法之六(刪除)

    1.  准備條件

    參數:ObjectDataSource用法之一(SelectMethod來進行簡單的邦定)

    2.  在業務處理類中添加如下方法

    public void DeleteItem(string UID)
    {
        HttpContext.Current.Response.Write("UID = " + UID + "<br/>");
    }

    3. aspx頁面內容為

    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
        SelectMethod="AllItems" DeleteMethod="DeleteItem" OldValuesParameterFormatString="{0}" TypeName="Member">
        <DeleteParameters>
            <asp:Parameter Name="UID" />
        </DeleteParameters>
    </asp:ObjectDataSource>
    <asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1" AutoGenerateDeleteButton="true" DataKeyNames="UID">
    </asp:GridView>

    說明: 參考ObjectDataSource用法之五(更新) 

    此外有两点需要在使用删除的时候注意:
    1,在ConflictDetection=OverwriteChanges的时候,使用ObjectDataSource的DeleteMethod必须要在GridView上声明DataKeyNames,因为在没有设置DataObjectType的时候,ObjectDataSource只会给DeleteMethod传递一个参数,例如:OldValuesParameterFormatString="old_{0}"且DataKeyNames="id",那么它只会把id列的原始值old_id作为参数传递给后台的DeleteMehod,所以如果不设置DataKeyNames,DeleteMethod不会接受到任何值,也就无法进行删除操作!而在设置了DataObjectType的时候,只有设置了DataKeyNames,ObjectDataSource才会把各个Detele的Parameter的值传递给DeleteMethod的实体参数的属性,否则你会发现DeleteMethod的实体参数的所有属性都为空或定义时候的默认值。

    2,在ConflictDetection=CompareAllValues的时候,不必设置DataKeyNames,因为就算不设置DataKeyNames,GridView还是会将可编辑列的原始值全部传入DeleteMethod的函数参数或函数参数的实体属性。

    ConflictDetection
    会在后面用法八讲到

  • 相关阅读:
    P1026 统计单词个数
    常见的DP优化类型
    中国空气质量在线监測分析平台
    Linux Kernel系列一:开篇和Kernel启动概要
    Android入门第八篇之GridView(九宫图)
    eclipse+webservice开发实例
    【java读书笔记】——java开篇宏观把控 + HelloWorld
    选择排序
    The encryption certificate of the relying party trust identified by thumbprint is not valid
    【传递正能量】2014年感动我的十大微视频
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/1567727.html
Copyright © 2011-2022 走看看