zoukankan      html  css  js  c++  java
  • ObjectDataSource的DataObjectTypeName 属性

    获取或设置某个类的名称,ObjectDataSource 控件将该类用于更新、插入或删除数据操作中的参数,而不是从数据绑定控件传递个别的值。

    您不用指定传递给 Update、Insert 和 Delete 方法的多个参数,而是可以创建一个累计多个数据字段值的对象。仅给方法传递这一个对象,而不是多个参数。

    绑定到数据绑定控件的 ObjectDataSource 控件的默认行为是,数据绑定控件为数据源中的每个参数创建一个 Parameter 对象。如果业务对象有很多字段,则结果方法也有很多字段。DataObjectTypeName 属性允许您为每个数据字段都指定一个具有属性的类型。这样,运行时不是给方法传递多个参数,而是创建一个对象并设置它的所有属性。这一个对象添加到方法调用的参数集合中。

    DataObjectTypeName 属性指定的类型必须有一个不带参数的默认构造函数,以便 ObjectDataSource 控件可以创建此类型的实例。此类型还必须具有可设置的属性,允许 ObjectDataSource 控件用数据绑定控件传递的值填充对象。ObjectDataSource 控件的属性名应该与数据绑定控件传递的值的参数名完全匹配。

    当设置了 DataObjectTypeName 属性并且 ObjectDataSource 控件与数据绑定控件关联时,由 InsertMethod 和 DeleteMethod 属性指定的方法必须各有一个在 DataObjectTypeName 属性中指定的类型的参数。如果 ConflictDetection 属性设置为 OverwriteChanges 值,则由 UpdateMethod 属性指定的方法必须有一个在 DataObjectTypeName 属性中指定的类型的参数。如果 ConflictDetection 属性设置为 CompareAllValues 值,则由 UpdateMethod 属性指定的方法必须有两个在 DataObjectTypeName 属性中指定的类型的参数。第一个参数包含原始值;第二个参数包含新值。

    DataObjectTypeName 属性委托给与 ObjectDataSource 控件关联的 ObjectDataSourceView 的 DataObjectTypeName 属性。

    示例
    --------------------------------------------------------------------------------

    本节包含两个代码示例。第一个代码示例演示如何使用 DataObjectTypeName 属性,实现一个将所有参数值合并为一个对象的类型。第二个代码示例演示了使用第一个示例中的两个类的网页。

    下面的代码示例演示如何使用 DataObjectTypeName 属性,实现一个将所有参数值合并为一个对象的类型。AggregateData 类的选择方法返回一个有两个名为 Name 和 Number 的列的 DataTable 对象。同样,NewData 类定义两个读/写属性 Name 和 Number。AggregateData 类的 Insert 方法带 NewData 类型的一个参数。ObjectDataSource 的 TypeName 属性设置为 AggregateData,DataObjectTypeName 属性设置为 NewData。

    代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    namespace Samples.AspNet.CS
    {

        
    /// <summary>
        
    /// Summary description for AggregateData
        
    /// </summary>
        public class AggregateData
        {

            
    public AggregateData()
            {

            }

            
    static DataTable table;

            
    private DataTable CreateData()
            {
                table 
    = new DataTable();
                table.Columns.Add(
    "Name"typeof(string));
                table.Columns.Add(
    "Number"typeof(int));
                table.Rows.Add(
    new object[] { "one"1 });
                table.Rows.Add(
    new object[] { "two"2 });
                table.Rows.Add(
    new object[] { "three"3 });
                
    return table;
            }

            
    public DataTable Select()
            {
                
    if (table == null)
                {
                    
    return CreateData();
                }
                
    else
                {
                    
    return table;
                }
            }

            
    public int Insert(NewData newRecord)
            {
                table.Rows.Add(
    new object[] { newRecord.Name, newRecord.Number });
                
    return 1;
            }
        }

        
    public class NewData
        {
            
    private string nameValue;
            
    private int numberValue;

            
    public string Name
            {
                
    get { return nameValue; }
                
    set { nameValue = value; }
            }

            
    public int Number
            {
                
    get { return numberValue; }
                
    set { numberValue = value; }
            }

        }
    }
    代码
    <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
    <%@ Page Language="C#" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

    <script runat="server">

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        
    <title>ObjectDataSource - DataObjectTypeName Property Example</title>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
            
    <asp:DetailsView 
                
    ID="DetailsView1" 
                runat
    ="server" 
                AllowPaging
    ="True" 
                AutoGenerateInsertButton
    ="True"
                DataSourceID
    ="ObjectDataSource1" 
                Height
    ="50px" 
                Width
    ="125px">
            
    </asp:DetailsView>
            
    <asp:ObjectDataSource 
                
    ID="ObjectDataSource1" 
                runat
    ="server" 
                DataObjectTypeName
    ="Samples.AspNet.CS.NewData"
                InsertMethod
    ="Insert" 
                SelectMethod
    ="Select" 
                TypeName
    ="Samples.AspNet.CS.AggregateData">
            
    </asp:ObjectDataSource>
        
    </div>
        
    </form>
    </body>
    </html>
  • 相关阅读:
    SDWebImage
    ios面试题
    IOS推送功能push
    NSString什么时候用copy,什么时候用strong
    OC点语法和变量作用域
    iOS 常用几种数据存储方式
    JSON与XML的区别比较
    IOS开发——网络编程OC篇&Socket编程
    IOS-UI控件大全
    使用sql语句备份一张表
  • 原文地址:https://www.cnblogs.com/Fskjb/p/1730333.html
Copyright © 2011-2022 走看看