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
会在后面用法八讲到

转载于:https://www.cnblogs.com/OpenCoder/archive/2009/09/16/1567727.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值