最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:37:46
文檔

ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性

ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性:一、ObjectDataSource 控件說明 獲取或設置某個類的名稱,ObjectDataSource 控件將該類用于更新、插入或刪除數(shù)據(jù)操作中的參數(shù),而不是從數(shù)據(jù)綁定控件傳遞個別的值。 您不用指定傳遞給 Update、Insert 和 Delete 方法的多個參數(shù),而是可以創(chuàng)建一個累計
推薦度:
導讀ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性:一、ObjectDataSource 控件說明 獲取或設置某個類的名稱,ObjectDataSource 控件將該類用于更新、插入或刪除數(shù)據(jù)操作中的參數(shù),而不是從數(shù)據(jù)綁定控件傳遞個別的值。 您不用指定傳遞給 Update、Insert 和 Delete 方法的多個參數(shù),而是可以創(chuàng)建一個累計

一、ObjectDataSource 控件說明

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

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

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

二、DataObjectTypeName 屬性的使用

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

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

DataObjectTypeName 屬性委托給與 ObjectDataSource 控件關聯(lián)的 ObjectDataSourceView 的 DataObjectTypeName 屬性。

三、示例代碼

下面的代碼示例演示如何使用 DataObjectTypeName 屬性,實現(xiàn)一個將所有參數(shù)值合并為一個對象的類型。AggregateData 類的選擇方法返回一個有兩個名為 Name 和 Number 的列的 DataTable 對象。同樣,NewData 類定義兩個讀/寫屬性 Name 和 Number。AggregateData 類的 Insert 方法帶 NewData 類型的一個參數(shù)。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; }
 }

 }
}

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性

ASP.NET中 ObjectDataSource控件的DataObjectTypeName屬性:一、ObjectDataSource 控件說明 獲取或設置某個類的名稱,ObjectDataSource 控件將該類用于更新、插入或刪除數(shù)據(jù)操作中的參數(shù),而不是從數(shù)據(jù)綁定控件傳遞個別的值。 您不用指定傳遞給 Update、Insert 和 Delete 方法的多個參數(shù),而是可以創(chuàng)建一個累計
推薦度:
標簽: 控件 type asp
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top