好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP.NET Eval進行數據綁定的方法

ASP.NET Eval進行數據綁定的方法

熱門標簽:五常地圖標注 電銷語音自動機器人 凱立德導航官網地圖標注 萊蕪外呼電銷機器人價格 戶外地圖標注軟件手機哪個好用 地圖標注和認領 長春呼叫中心外呼系統哪家好 鄭州400電話辦理 聯通 智能電話營銷外呼系統

假設你已經了解ASP.NET Eval 1.1的數據綁定(特別是Container這個局部變量)的機制,這里主要分析ASP.NET Eval 2.0數據綁定做了那些改進.

ASP.NET Eval 2.0 的數據綁定函數Eval()簡化掉了ASP.NET Eval 1.1神秘的Container.DataItem,比如數據綁定表達式:

復制代碼 代碼如下:

%# (Container.DataItem as DataRowView)["ProductName"].ToString() %>

ASP.NET Eval 1.1簡化為:(去掉了類型指定, Eval通過反射實現,本文不再闡述)
復制代碼 代碼如下:

%# DataBinder.Eval(Container.DataItem, "ProductName").ToString() %>

ASP.NET Eval 2.0又簡化為,去掉了Container局部變量:

%# Eval("ProductName") %>

那么,Page.Eval()又是如何知道"ProductName"是那個數據的屬性呢,即Container.DataItem真的消失了嗎?

ASP.NET Eval()是Page的父類TemplateControl的方法

TemplateControl.Eval()可以自動計算出Container, 機制就是從一個dataBindingContext:Stack堆棧來獲取.

1. 建立DataItem Container 棧:

在Control.DataBind()中,建立,這樣可以保證子控件的DataItem Container始終在棧頂.

復制代碼 代碼如下:

public class Control

{

protected virtual void DataBind(bool raiseOnDataBinding)

{

bool foundDataItem = false; if (this.IsBindingContainer)

{

object o = DataBinder.GetDataItem(this, out foundDataItem);

if (foundDataItem)

Page.PushDataItemContext(o); -- 將DataItem壓入堆棧

}

try

{

if (raiseOnDataBinding)

OnDataBinding(EventArgs.Empty);

DataBindChildren(); -- 綁定子控件

}

finally

{

if (foundDataItem)

Page.PopDataItemContext(); -- 將DataItem彈出堆棧

}

}

}


2. 獲取DataItem Container
復制代碼 代碼如下:

public class Page

{

public object GetDataItem()

{

...

return this._dataBindingContext.Peek(); -- 讀取堆棧頂部的DataItem Container,就是正在綁定的DataItem Container

}

}


3. TemplateControl.Eval()
復制代碼 代碼如下:

public class TemplateControl

{

protected string Eval (string expression, string format)

{

return DataBinder.Eval (Page.GetDataItem(), expression, format);

}

}


結論:

從上面看出Page.Eval()在計算的時候還是引用了Container.DataItem,只不過這個DataItem通過DataItem Container堆棧自動計算出來的.我認為Page.Eval()看似把問題簡化了,其實把問題搞得更加神秘.

您可能感興趣的文章:
  • ASP.NET MVC DropDownList數據綁定及使用詳解
  • AspNetAjaxPager,Asp.Net通用無刷新Ajax分頁控件,支持多樣式多數據綁定
  • asp.net ListView 數據綁定
  • asp.net Repeater 數據綁定的具體實現(圖文詳解)
  • asp.net Repeater 數據綁定代碼
  • asp.net數據綁定DataBind使用方法
  • asp.net 下拉列表無級數據綁定實現代碼
  • ASP.NET框架中的數據綁定概要與數據綁定表達式的使用

標簽:西藏 福州 西寧 湖州 岳陽 紅河 衢州 宣城

巨人網絡通訊聲明:本文標題《ASP.NET Eval進行數據綁定的方法》,本文關鍵詞  ASP.NET,Eval,進行,數據,綁,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET Eval進行數據綁定的方法》相關的同類信息!
  • 本頁收集關于ASP.NET Eval進行數據綁定的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日韩午夜福利理论片5.7主演 | 国产伦子一区二区三区| 一级黄色片一级| 欧美末成年video水多| 欧美AV色香蕉一区二区蜜臀蝴蝶 | 探花系列午夜寻花ThePorn| 精品国产成a人在线观看| 美女裸体秘?无遮挡奶胸| 亚洲男人AV天堂精品少妇| 高中女生破处视频| 黄色大片网址| 厨房掀开馊了裙子挺进去电影| 亚洲 欧美 国产 综合首页| 69式囗交图片| 国产成人综合亚洲网| 国产精品1区2区3区在线播放| 又粗又硬又大的三级视频| 久久久久人妻一区精品加勒比| 97免费视频免费视频| 一起洗澡的家庭教师| 《情欲电车》3在线观看| 亚洲综合精品尤物秘?999| yin乱小说| 调教小宝贝肉h道具水果h| 《漂亮的女邻居5》HD| 久久人妻无码AⅤ毛片A片APP| 男男电影体液无删减版视频| 男生喷出精子视频在线观看| 周芷若被扒开双乳蹂躏| 欧美性激烈粗大精品XXX| 韩国一级网站| 终极笔记在线观看| 看污片网站| 免费视频精品一区二区三区| 餐桌下狂c亲女高辣h文| 护士用口取精全过程| 末班车在线观看免费完整版| 狠狠人妻久久久久久综合jiu| 717三级三级理论在线观看视频| 欧美一级片黄色片| 婷婷综合久久中文字幕|