asp.net TemplateField模板中的Bind方法和Eval方法
更新時(shí)間:2009年06月17日 20:04:29 作者:
在TemplateField模板中為了能夠有限制的或者取出數(shù)據(jù)庫(kù)中某列的值時(shí),可以用Bind和Eval方法來(lái)實(shí)現(xiàn)。以下是Bind方法的格式,Eval的格式也是和Bind一樣的。 Bind("列的名稱(chēng)","顯示的格式文")
比如我們要取個(gè)日期型的數(shù)據(jù),在數(shù)據(jù)庫(kù)中列名是updated,數(shù)值是2008/06/01。但是想2008年06月01日這樣顯示,我們可以這樣來(lái)寫(xiě)B(tài)ind("updated", "{0:yyyy年MM月dd日}"),Eval也是如此。
2者都能讀取數(shù)據(jù)中的值,并顯示。當(dāng)我們使用編輯更新操作時(shí),Bind能夠自動(dòng)的將修改的值更新到數(shù)據(jù)庫(kù)中,并顯示出修改后的值。但是用了Eval卻只能得到錯(cuò)誤畫(huà)面,新的數(shù)據(jù)沒(méi)有更新到數(shù)據(jù)庫(kù)中。
從這點(diǎn)看來(lái),Bind方法和Eval方法的區(qū)別就是:Bind方法在讀取和更新數(shù)據(jù)這2方面都是可以,但是Eval方法只能讀取顯示數(shù)據(jù)。所以,我們?cè)谶x擇Bind方法和Eval方法的時(shí)候,必須要有爭(zhēng)對(duì)性,當(dāng)數(shù)據(jù)肯定需要更新操作的時(shí)候我們應(yīng)該使用Bind,只是顯示數(shù)據(jù),不會(huì)有任何操作的就可以使用Eval方法。
在更新操作中我們可以在GridView1_RowUpdating事件中操作,例子如下:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新行GridViewRow
GridViewRow row = this.GridView1.Rows[e.RowIndex];
//查找更新的控件
DropDownList present = (DropDownList)row.FindControl("ddlPresent");
TextBox price = (TextBox)row.FindControl("txtPrice");
TextBox updated = (TextBox)row.FindControl("txtUpdated");
//更新
e.NewValues["present"] = present.SelectedValue;
e.NewValues["price"] = price.Text;
e.NewValues["updated"] = updated.Text;
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新行GridViewRow
GridViewRow row = this.GridView1.Rows[e.RowIndex];
//查找更新的控件
DropDownList present = (DropDownList)row.FindControl("ddlPresent");
TextBox price = (TextBox)row.FindControl("txtPrice");
TextBox updated = (TextBox)row.FindControl("txtUpdated");
//更新
e.NewValues["present"] = present.SelectedValue;
e.NewValues["price"] = price.Text;
e.NewValues["updated"] = updated.Text;
}
如果我們能充分理解Bind方法和Eval方法,其實(shí)也就沒(méi)必要向上面那樣去寫(xiě),都是可以自動(dòng)完成的。上面的方法除了比較復(fù)雜的操作才會(huì)用到,這也是一個(gè)使用技巧。
2者都能讀取數(shù)據(jù)中的值,并顯示。當(dāng)我們使用編輯更新操作時(shí),Bind能夠自動(dòng)的將修改的值更新到數(shù)據(jù)庫(kù)中,并顯示出修改后的值。但是用了Eval卻只能得到錯(cuò)誤畫(huà)面,新的數(shù)據(jù)沒(méi)有更新到數(shù)據(jù)庫(kù)中。
從這點(diǎn)看來(lái),Bind方法和Eval方法的區(qū)別就是:Bind方法在讀取和更新數(shù)據(jù)這2方面都是可以,但是Eval方法只能讀取顯示數(shù)據(jù)。所以,我們?cè)谶x擇Bind方法和Eval方法的時(shí)候,必須要有爭(zhēng)對(duì)性,當(dāng)數(shù)據(jù)肯定需要更新操作的時(shí)候我們應(yīng)該使用Bind,只是顯示數(shù)據(jù),不會(huì)有任何操作的就可以使用Eval方法。
在更新操作中我們可以在GridView1_RowUpdating事件中操作,例子如下:
復(fù)制代碼 代碼如下:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新行GridViewRow
GridViewRow row = this.GridView1.Rows[e.RowIndex];
//查找更新的控件
DropDownList present = (DropDownList)row.FindControl("ddlPresent");
TextBox price = (TextBox)row.FindControl("txtPrice");
TextBox updated = (TextBox)row.FindControl("txtUpdated");
//更新
e.NewValues["present"] = present.SelectedValue;
e.NewValues["price"] = price.Text;
e.NewValues["updated"] = updated.Text;
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//更新行GridViewRow
GridViewRow row = this.GridView1.Rows[e.RowIndex];
//查找更新的控件
DropDownList present = (DropDownList)row.FindControl("ddlPresent");
TextBox price = (TextBox)row.FindControl("txtPrice");
TextBox updated = (TextBox)row.FindControl("txtUpdated");
//更新
e.NewValues["present"] = present.SelectedValue;
e.NewValues["price"] = price.Text;
e.NewValues["updated"] = updated.Text;
}
如果我們能充分理解Bind方法和Eval方法,其實(shí)也就沒(méi)必要向上面那樣去寫(xiě),都是可以自動(dòng)完成的。上面的方法除了比較復(fù)雜的操作才會(huì)用到,這也是一個(gè)使用技巧。
您可能感興趣的文章:
- ASP.NET之Excel下載模板、導(dǎo)入、導(dǎo)出操作
- asp.net GridView控件中模板列CheckBox全選、反選、取消
- asp.net使用npoi讀取excel模板并導(dǎo)出下載詳解
- 使用ASP.NET模板生成HTML靜態(tài)頁(yè)面的五種方案
- asp.net下將頁(yè)面內(nèi)容導(dǎo)入到word模板中的方法
- asp.net GridView模板列中實(shí)現(xiàn)選擇行功能
- asp.net(C#)壓縮圖片,可以指定圖片模板高寬
- asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼
- ASP.NET中實(shí)現(xiàn)模板頁(yè)
- MVC使用T4模板生成其他類(lèi)的具體實(shí)現(xiàn)學(xué)習(xí)筆記2
相關(guān)文章
asp.net 學(xué)習(xí)之路 項(xiàng)目整體框架簡(jiǎn)單的搭建
最近剛學(xué)了些關(guān)于asp.net mvc方面的知識(shí),于是了要拿個(gè)小項(xiàng)目來(lái)練練手,提高下自己的code能力跟思維能力2012-12-12詳解ASP.NET Core3.0 配置的Options模式
這篇文章主要介紹了詳解ASP.NET Core3.0 配置的Options模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Asp.net頁(yè)面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟
這篇文章主要介紹了Asp.net頁(yè)面中調(diào)用soapheader進(jìn)行驗(yàn)證的操作步驟,感興趣的小伙伴們可以參考一下2016-04-04ASP.NET開(kāi)源導(dǎo)入導(dǎo)出庫(kù)Magicodes.IE完成Csv導(dǎo)入導(dǎo)出的方法
這篇文章主要介紹了ASP.NET開(kāi)源導(dǎo)入導(dǎo)出庫(kù)Magicodes.IE完成Csv導(dǎo)入導(dǎo)出的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06asp.net的IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的用法
IndexOf,LastIndexOf,IndexOfAny和LastIndexOfAny的功能,是定位字符或定位子串2012-10-10ASP.NET 防止按鈕多次提交核心實(shí)現(xiàn)代碼
防止按鈕多次提交通常都是在注冊(cè)表單中提示時(shí)的一個(gè)小功能,具體實(shí)現(xiàn)如下,由此需求的朋友可以參考下2013-08-08