麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性

2024-07-10 13:30:24
字體:
來源:轉載
供稿:網友
本文主要介紹ObjectDataSource控件和DataObjectTypeName屬性的用法,希望能給小伙伴們一些幫助。
 

一、ObjectDataSource 控件說明

獲取或設置某個類的名稱,ObjectDataSource 控件將該類用于更新、插入或刪除數據操作中的參數,而不是從數據綁定控件傳遞個別的值。

您不用指定傳遞給 Update、Insert 和 Delete 方法的多個參數,而是可以創建一個累計多個數據字段值的對象。僅給方法傳遞這一個對象,而不是多個參數。

綁定到數據綁定控件的 ObjectDataSource 控件的默認行為是,數據綁定控件為數據源中的每個參數創建一個 Parameter 對象。如果業務對象有很多字段,則結果方法也有很多字段。DataObjectTypeName 屬性允許您為每個數據字段都指定一個具有屬性的類型。這樣,運行時不是給方法傳遞多個參數,而是創建一個對象并設置它的所有屬性。這一個對象添加到方法調用的參數集合中。

二、DataObjectTypeName 屬性的使用

DataObjectTypeName 屬性指定的類型必須有一個不帶參數的默認構造函數,以便 ObjectDataSource 控件可以創建此類型的實例。此類型還必須具有可設置的屬性,允許 ObjectDataSource 控件用數據綁定控件傳遞的值填充對象。ObjectDataSource 控件的屬性名應該與數據綁定控件傳遞的值的參數名完全匹配。

當設置了 DataObjectTypeName 屬性并且 ObjectDataSource 控件與數據綁定控件關聯時,由 InsertMethod 和 DeleteMethod 屬性指定的方法必須各有一個在 DataObjectTypeName 屬性中指定的類型的參數。如果 ConflictDetection 屬性設置為 OverwriteChanges 值,則由 UpdateMethod 屬性指定的方法必須有一個在 DataObjectTypeName 屬性中指定的類型的參數。如果 ConflictDetection 屬性設置為 CompareAllValues 值,則由 UpdateMethod 屬性指定的方法必須有兩個在 DataObjectTypeName 屬性中指定的類型的參數。第一個參數包含原始值;第二個參數包含新值。

DataObjectTypeName 屬性委托給與 ObjectDataSource 控件關聯的 ObjectDataSourceView 的 DataObjectTypeName 屬性。

三、示例代碼

下面的代碼示例演示如何使用 DataObjectTypeName 屬性,實現一個將所有參數值合并為一個對象的類型。AggregateData 類的選擇方法返回一個有兩個名為 Name 和 Number 的列的 DataTable 對象。同樣,NewData 類定義兩個讀/寫屬性 Name 和 Number。AggregateData 類的 Insert 方法帶 NewData 類型的一個參數。ObjectDataSource 的 TypeName 屬性設置為 AggregateData,DataObjectTypeName 屬性設置為 NewData。

前臺代碼:

<%@ 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>

后臺代碼:

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; }    }  }}


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品一区二区三区在线观看国产 | 日本精品免费观看 | 草莓福利视频在线观看 | 日日草夜夜| 加勒比综合 | 黄色男女视频 | 黄污在线观看 | 美女污污视频在线观看 | 黄色毛片免费看 | 91成人午夜性a一级毛片 | 国产1区2区3区中文字幕 | 国产99精品在线 | 制服丝袜日日夜夜 | a网在线| 国产亚洲综合一区二区 | 一区二区三区在线观看av | 爱爱视频天天干 | 亚洲日本韩国精品 | bt 自拍 另类 综合 欧美 | 黄色二区三区 | 一级片九九 | 男女隐私免费视频 | 久久亚洲国产精品 | 九草av| 天使萌一区二区三区免费观看 | 国产精品久久久久久久亚洲按摩 | 欧美不卡在线 | 免费一区区三区四区 | 成人国产精品久久 | 久久免费视频精品 | 国产精品久久久久久久久久 | 久久久久久久久久综合 | 成年免费观看视频 | 国产精品视频海角社区88 | qyl在线视频精品免费观看 | 久久人人爽人人爽人人片av高清 | 成人在线视频黄色 | 鲁人人人鲁人人鲁精品 | 999久久国精品免费观看网站 | a视频在线看 | 在线观看免费污视频 |