亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET Eval四種綁定方式

2019-11-17 01:27:48
字體:
來源:轉載
供稿:網友

asp.net Eval四種綁定方式

ASP.NET Eval四種綁定方式:

1、1.x中的數據綁定語法

<asp:Literal id="litEval2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "userName")%>' />

2、 2.x簡化Eval數據綁定語法

<asp:Literal id="litEval1" runat="server" Text='<%Eval("userName")%>' />

3、第二種方法的方法重載

<a href='<%# Eval("userId","Default.aspx?id={0}")%>'><%# Eval("userName") %></a>

4、eval同時綁定兩個值

<a href='<%# string.Format("Default.aspx?id={0}&role={1}", Eval("userId"),Eval("userRole"))%>'><%# Eval("userName") %></a>

eval_r()方法在運行時使用反射執行后期綁定計算,因此與標準的ASP.NET數據綁定方法bind相比,會導致性能明顯下降。它一般用在綁定時需要格式化字符串的情況下。多數情況盡量少用此方法

Eval 方法是靜態(只讀)方法,該方法采用數據字段的值作為參數并將其作為字符串返回。Bind 方法支持讀/寫功能,可以檢索數據綁定控件的值并將任何更改提交回數據庫。

使用 Eval 方法 Eval 方法可計算數據綁定控件(如 GridView、DetailsView 和 FormView 控件)的模板中的后期綁定數據表達式。在運行時,Eval 方法調用 DataBinder 對象的 Eval 方法,同時引用命名容器的當前數據項。命名容器通常是包含完整記錄的數據綁定控件的最小組成部分,如 GridView 控件中的一行。因此,只能對數據綁定控件的模板內的綁定使用 Eval 方法。

Eval 方法以數據字段的名稱作為參數,從數據源的當前記錄返回一個包含該字段值的字符串??梢蕴峁┑诙€參數來指定返回字符串的格式,該參數為可選參數。字符串格式參數使用為 String 類的 Format 方法定義的語法。

使用 Bind 方法 Bind 方法與 Eval 方法有一些相似之處,但也存在很大的差異。雖然可以像使用 Eval 方法一樣使用 Bind 方法來檢索數據綁定字段的值,但當數據可以被修改時,還是要使用 Bind 方法。

在 ASP.NET 中,數據綁定控件(如 GridView、DetailsView 和 FormView 控件)可自動使用數據源控件的更新、刪除和插入操作。例如,如果已為數據源控件定義了 SQL Select、Insert、Delete 和 Update 語句,則通過使用 GridView、DetailsView 或 FormView 控件模板中的 Bind 方法,就可以使控件從模板中的子控件中提取值,并將這些值傳遞給數據源控件。然后數據源控件將執行適當的數據庫命令。出于這個原因,在數據綁定控件的 EditItemTemplate 或 InsertItemTemplate 中要使用 Bind 函數。

Bind 方法通常與輸入控件一起使用,例如由編輯模式中的 GridView 行所呈現的 TextBox 控件。當數據綁定控件將這些輸入控件作為自身呈現的一部分創建時,該方法便可提取輸入值。

Bind 方法采用數據字段的名稱作為參數,從而與綁定屬性關聯,如下面的示例所示:

<EditItemTemplate>

<table>

<tr>

<td align=right> <b>Employee ID:</b> </td>

<td> <%# eval_r("EmployeeID") %> </td>

</tr>

<tr>

<td align=right> <b>First Name:</b> </td>

<td> <asp:TextBox ID="EditFirstNameTextBox" RunAt="Server" Text='<%# Bind("FirstName") %>' /> </td>

</tr>

<tr>

<td align=right> <b>Last Name:</b> </td>

<td> <asp:TextBox ID="EditLastNameTextBox" RunAt="Server" Text='<%# Bind("LastName") %>' /> </td>

</tr>

<tr>

<td colspan="2"> <asp:LinkButton ID="UpdateButton" RunAt="server" Text="Update" CommandName="Update" /> <asp:LinkButton ID="CancelUpdateButton" RunAt="server" Text="Cancel" CommandName="Cancel" /> </td>

</tr>

</table>

</EditItemTemplate>

單擊行的 Update 按鈕時,使用 Bind 語法綁定的每個控件屬性值都會被提取出來,并傳遞給數據源控件以執行更新操作。

使用 DataBinder.Eval ASP.NET 提供了一個名為 DataBinder.Eval 的靜態方法,該方法計算后期綁定的數據綁定表達式,并將結果格式化為字符串(可選)。利用此方法,可以避免許多在將值強制為所需數據類型時必須執行的顯式強制轉換操作。

例如,在下面的代碼片段中,一個整數顯示為貨幣字符串。使用標準的 ASP.NET 數據綁定語法,必須首先強制轉換數據行的類型以便檢索數據字段 IntegerValue。然后,這將作為參數傳遞到 String.Format 方法:

<%# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %>

將此語法與 DataBinder.Eval 的語法進行比較,后者只有三個參數:數據項的命名容器、數據字段名稱和格式字符串。在模板化列表中(如 DataList 類、DataGrid 類或 Repeater 類),命名容器始終是 Container.DataItem。

<%# DataBinder.eval_r(Container.DataItem, "IntegerValue", "{0:c}") %>

格式字符串參數是可選的。如果它被忽略,DataBinder.Eval 將返回類型對象的值,如下面的示例所示: <%# (bool)DataBinder.eval_r(Container.DataItem, "BoolValue") %> 當對模板化列表中的控件進行數據綁定時,DataBinder.Eval 特別有用,因為數據行和數據字段通常都必須強制轉換。

在TemplateField模板中為了能夠有限制的或者取出數據庫中某列的值時,可以用Bind和Eval方法來實現。以下是Bind方法的格式,Eval的格式也是和Bind一樣的。 Bind("列的名稱","顯示的格式文")

比如我們要取個日期型的數據,在數據庫中列名是updated,數值是2008/06/01。但是想2008年06月01日這樣顯示,我們可以這樣來寫Bind("updated", "{0:yyyy年MM月dd日}"),Eval也是如此。

兩者都能讀取數據中的值,并顯示。當我們使用編輯更新操作時,Bind能夠自動的將修改的值更新到數據庫中,并顯示出修改后的值。但是用了Eval卻只能得到錯誤畫面,新的數據沒有更新到數據庫中。

從這點看來,Bind方法和Eval方法的區別就是:Bind方法在讀取和更新數據這2方面都是可以,但是Eval方法只能讀取顯示數據。所以,我們在選擇Bind方法和Eval方法的時候,必須要有爭對性,當數據肯定需要更新操作的時候我們應該使用Bind,只是顯示數據,不會有任何操作的就可以使用Eval方法。

在更新操作中我們可以在GridView1_RowUpdating事件中操作,例子如下:

如果我們能充分理解Bind方法和Eval方法,其實也就沒必要向上面那樣去寫,都是可以自動完成的。上面的方法除了比較復雜的操作才會用到,這也是一個使用技巧。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品久久久久久| 最近的2019中文字幕免费一页| 91久久久久久久久久久久久| 国产精品露脸av在线| 亚洲欧美福利视频| 日韩av在线网址| 中文字幕日韩精品在线观看| 国语自产精品视频在线看一大j8| 欧美日本国产在线| 国产精品日韩欧美| 日本韩国欧美精品大片卡二| 久久香蕉国产线看观看av| 亚洲成年人影院在线| 亚洲国产一区自拍| 亚洲第一页中文字幕| 国产精品观看在线亚洲人成网| 欧美激情亚洲综合一区| 亚洲欧美激情四射在线日| 日本人成精品视频在线| 国产香蕉一区二区三区在线视频| 日韩精品中文字幕在线观看| 国产一区红桃视频| 欧美日韩精品中文字幕| 久久天天躁狠狠躁夜夜躁2014| 日韩精品在线观| 欧美日韩在线视频一区二区| 日韩av手机在线| 成人自拍性视频| 国产精品a久久久久久| 精品国产精品三级精品av网址| 丝袜美腿精品国产二区| 91chinesevideo永久地址| 精品夜色国产国偷在线| 午夜免费在线观看精品视频| 一级做a爰片久久毛片美女图片| 国产伦精品免费视频| 亚洲www永久成人夜色| 久久精品国产清自在天天线| 91经典在线视频| 欧美黑人狂野猛交老妇| 久久91精品国产91久久久| 黑人精品xxx一区| 亚洲成人久久电影| 国产成人一区二区三区电影| 久久精品成人欧美大片古装| 亚洲老头老太hd| 精品五月天久久| 欧美黄色三级网站| 欧美性少妇18aaaa视频| 91精品久久久久久久久久另类| 国产精品久久久久久久电影| 成人激情视频网| 亚洲国产精彩中文乱码av在线播放| 亚洲国产一区二区三区四区| 亚洲国产高清自拍| 成人福利免费观看| 中日韩美女免费视频网站在线观看| 久久国产精品久久久| 久久久国产精品一区| 91久久久亚洲精品| 欧美色videos| 国产在线视频91| 久久99视频免费| 欧美专区第一页| 日韩免费av在线| 亚洲精品久久久久久久久久久久久| 91成品人片a无限观看| 国产精品亚洲综合天堂夜夜| 国模精品一区二区三区色天香| 精品国产美女在线| 色一情一乱一区二区| 国产精品精品视频一区二区三区| 97视频在线观看成人| 精品一区电影国产| 成人精品久久一区二区三区| 欧美日韩激情视频| 久久久久成人精品| 隔壁老王国产在线精品| 成人午夜在线视频一区| 欧美日韩国产激情| 亚洲一区二区三区成人在线视频精品| 日韩精品在线播放| 懂色av影视一区二区三区| 欧美做受高潮1| 欧美亚洲国产另类| 奇门遁甲1982国语版免费观看高清| 成人在线视频网站| 精品在线欧美视频| 插插插亚洲综合网| 国产精品成人国产乱一区| 欧美国产日韩中文字幕在线| 欧美激情一区二区三区在线视频观看| 青青草精品毛片| 国产精品亚洲欧美导航| 亚洲国产精品久久久| 国产欧美精品日韩精品| 不卡av日日日| 日韩av不卡在线| 日韩av电影手机在线| 亚洲欧洲国产精品| 欧美成人精品在线播放| 精品国产乱码久久久久久天美| 日韩欧美在线中文字幕| 中文字幕欧美日韩在线| 亚洲第一福利视频| 亚洲欧美精品suv| 粗暴蹂躏中文一区二区三区| 欧美重口另类videos人妖| 亚洲香蕉伊综合在人在线视看| 国产精品视频不卡| 国产精品免费久久久久久| 国产精品视频专区| 国产精品色婷婷视频| 国产一区二区三区直播精品电影| 在线播放国产精品| 欧美激情伊人电影| 欧美一区二区影院| 北条麻妃一区二区三区中文字幕| 91日本在线观看| 久久久久一本一区二区青青蜜月| 高清一区二区三区四区五区| 国产成人综合亚洲| 九九九久久国产免费| 日韩在线视频观看| 国产亚洲精品久久久久久| 久久久国产91| 北条麻妃久久精品| 26uuu亚洲伊人春色| 欧美激情一区二区三级高清视频| 日韩女优人人人人射在线视频| 自拍偷拍亚洲精品| 在线成人免费网站| 欧美日韩国产在线播放| 久久久久久有精品国产| 精品亚洲一区二区三区在线观看| 日韩中文字幕在线| 欧美另类第一页| 中文字幕亚洲情99在线| 欧美精品videossex88| 久久网福利资源网站| 亚洲第一黄色网| 91久久在线观看| 日韩a**站在线观看| 亚洲黄色免费三级| 久久久91精品国产| 成人福利在线观看| 久久福利视频网| 欧美成aaa人片在线观看蜜臀| 国产精品亚洲美女av网站| 最近2019年日本中文免费字幕| 中文在线不卡视频| 日韩电影中文字幕在线观看| 欧美另类高清videos| 欧美视频一区二区三区…| 成人国产精品一区| 精品视频在线观看日韩| 日韩av成人在线观看| 在线性视频日韩欧美| 国产成人亚洲综合青青| 精品国产一区二区三区久久狼黑人| 久久久久久久国产精品视频| 91精品久久久久久久久久久久久久| 久久精品色欧美aⅴ一区二区| 亚洲老司机av|