這篇文章主要講解了“如何利用TemplateField將姓和名顯示在一列中”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何利用TemplateField將姓和名顯示在一列中”吧!
致力于企業(yè)形象建設(shè)和產(chǎn)品!多年來,成都創(chuàng)新互聯(lián)公司不忘初心,以建立行業(yè)服務(wù)標(biāo)桿為目標(biāo),不斷提升技術(shù)設(shè)計服務(wù)水平,幫助客戶在互聯(lián)網(wǎng)推廣自己的產(chǎn)品、服務(wù),為客戶創(chuàng)造價值從而實現(xiàn)自身價值!中小型企業(yè)如何做品牌網(wǎng)站設(shè)計?初創(chuàng)業(yè)公司建站預(yù)算不足?
現(xiàn)在,每一個雇員的姓和名都是分開在兩列中顯示的。把它們放到一個列中顯示出來也許是一個不錯的主意。要做到這一點,我們需要用到TemplateField。我們可以添加一個新的TemplateField,給它加上一些必須的標(biāo)記語言和數(shù)據(jù)綁定代碼,然后刪除原來的FirstName和 LastName這兩個BoundField;當(dāng)然,我們也可以將FirstName這個BoundField直接轉(zhuǎn)換成一個TemplateField,編輯它以加上LastName的值,然后再刪除LastName這個BoundField。
兩種辦法都行,不過我個人還是比較喜歡直接轉(zhuǎn)換的那種,因為這種方式可以自動的添加一個含有Web控件和相應(yīng)的數(shù)據(jù)綁定代碼的ItemTemplate和EditItemTemplate,它們可以用來模仿一個BoundField的呈現(xiàn)和功能。這樣做的好處自然是不言而喻的,因為轉(zhuǎn)換的過程已經(jīng)幫我們做了很多事情,那我們當(dāng)然就可以節(jié)約不少的時間了。
要將一個BoundField轉(zhuǎn)換成TemplateField,我們可以在GridView的智能標(biāo)簽的彈出菜單中點擊“編輯列”(Edit Columns)。在彈出對話框的左下角的列表中選擇需要轉(zhuǎn)換的BoundField,然后點擊右下角的“將此列轉(zhuǎn)換成模板列”(Convert this field into a TemplateField)即可。
TemplateField:在字段對話框中,將一個綁定列轉(zhuǎn)換成一個模板列
讓我們繼續(xù)將FirstName這個BoundField轉(zhuǎn)換成TemplateField。在這個更改之后,設(shè)計器中并沒有什么明顯的不同。這是因為將BoundField轉(zhuǎn)換成TemplateField時,其實是創(chuàng)建了一個維持之前的BoundField的外觀和感覺的TemplateField。盡管在設(shè)計器中沒有視覺上的變化,但是這個轉(zhuǎn)換的過程已經(jīng)將BoundField的聲明代碼——< asp:BoundField DataField="FirstName" HeaderText="FirstName" SortExpression="FirstName" />——改成了如下所示的TemplateField的聲明代碼:
< asp:TemplateField HeaderText="FirstName" SortExpression="FirstName"> < EditItemTemplate> < asp:TextBox ID="TextBox1" runat="server" Text='< %# Bind("FirstName") %>'>< /asp:TextBox> < /EditItemTemplate> < ItemTemplate> < asp:Label ID="Label1" runat="server" Text='< %# Bind("FirstName") %>'>< /asp:Label> < /ItemTemplate> < /asp:TemplateField>
就像你看到的那樣,TemplateField由兩個模板組成——一個ItemTemplate,它有一個Label控件,其Text屬性被設(shè)置為FirstName數(shù)據(jù)字段的值;還有一個EditItemTemplate,它有一個TextBix控件,其Text屬性也被設(shè)置為FirstName數(shù)據(jù)字段的值。數(shù)據(jù)綁定語法——
< %# Bind("fieldName") %>——說明數(shù)據(jù)字段fieldName 被綁定到了這個特定的Web控件的屬性上。
要將LastName添加到TemplateField中,我們需要為ItemTemplate添加一個Label控件并將其Text屬性綁定到LastName上。通過設(shè)計器或是手工編寫代碼都可以做到這一點。要手工寫代碼的話,只需簡單的將相應(yīng)的聲明代碼添加到ItemTemplate中即可,如下所示:
< asp:TemplateField HeaderText="FirstName" SortExpression="FirstName"> < EditItemTemplate> < asp:TextBox ID="TextBox1" runat="server" Text='< %# Bind("FirstName") %>'>< /asp:TextBox> < /EditItemTemplate> < ItemTemplate> < asp:Label ID="Label1" runat="server" Text='< %# Bind("FirstName") %>'>< /asp:Label> < asp:Label ID="Label2" runat="server" Text='< %# Bind("LastName") %>'>< /asp:Label> < /ItemTemplate> < /asp:TemplateField>
要通過設(shè)計器來添加的話,還是在GridView的智能標(biāo)簽的彈出菜單中點擊“編輯列”( Edit Templates)。這樣會顯示GridView的模板編輯界面。在這個界面中,智能標(biāo)簽是GridView中模板的列表。因為這個時候我們只有一個TemplateField,所以下拉列表中只有FirstName的各種模板和EmptyDataTemplate以及PagerTemplate。如果指定了EmptyDataTemplate模板的話,它將用于綁定到GridView的數(shù)據(jù)源中沒有任何記錄時的輸出呈現(xiàn);如果指定了PagerTemplate,它將用于呈現(xiàn)GridView的分頁界面。
TemplateField:GridView的模板列可以通過設(shè)計器來編輯
要在FirstName模板列中同時顯示LastName,從工具箱中拖一個Label到FirstName模板列的ItemTemplate中即可,當(dāng)然,這要在GridView的模板編輯界面中才行的,如下圖所示:
TemplateField:向FirstName模板列的ItemTemplate中添加一個Label
現(xiàn)在,添加到TemplateField的Label控件的Text屬性還是“Label”。我們需要修改這個以使這個屬性綁定到數(shù)據(jù)源中的LastName字段上。我們可以通過在Label控件的智能標(biāo)記上點擊一下,然后在彈出菜單中選擇“編輯數(shù)據(jù)綁定”( Edit DataBindings)選項,如下圖所示:
TemplateField:從Label的智能標(biāo)簽上選擇Edit DataBindings選項
在彈出的數(shù)據(jù)綁定對話框中,你可以在左邊的列表中選擇需要綁定的屬性,然后在右邊的下來框中選擇一個數(shù)據(jù)字段。好了,我們現(xiàn)在在左邊選擇Text屬性,然后在右邊選擇LastName字段,點擊OK。
TemplateField:將Text屬性綁定到LastName字段上
注意:數(shù)據(jù)綁定對話框允許你聲明一個雙向的數(shù)據(jù)綁定。如果你保持“雙向數(shù)據(jù)綁定” (Two-way databinding)這個復(fù)選框為未選中的話,數(shù)據(jù)綁定的代碼將會是< %# Eval("LastName")%>而不是< %# Bind("LastName")%>。不過,對于本節(jié)教程來說,兩個種做法的效果都是OK的。雙向數(shù)據(jù)綁定在插入和編輯數(shù)據(jù)的時候?qū)容^重要。但是如果僅僅是簡單的顯示數(shù)據(jù)的話,兩種做法都是一樣的。我們將在今后的章節(jié)中詳細(xì)的討論一下雙向數(shù)據(jù)綁定。
讓我們再花一些時間到瀏覽器中看看這個頁面。就像你看到的那樣,GridView仍然包含4列,不過,F(xiàn)irstName列里面顯示了姓和名兩個數(shù)據(jù)。
TemplateField:姓和名顯示在同一列里面了
要完成這一步,我們先刪除LastName這個綁定列,并將FirstName這個模板列的列頭文本(HeaderText)改成“Name”。在這之后,GridView的聲明代碼將會像下面這樣:
< asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="EmployeeID" DataSourceID="ObjectDataSource1"> < Columns> < asp:TemplateField HeaderText="Name" SortExpression="FirstName"> < EditItemTemplate> < asp:TextBox ID="TextBox1" runat="server" Text='< %# Bind("FirstName") %>'> < /asp:TextBox> < /EditItemTemplate> < ItemTemplate> < asp:Label ID="Label1" runat="server" Text='< %# Bind("FirstName") %>'>< /asp:Label> < asp:Label ID="Label2" runat="server" Text='< %# Eval("LastName") %>'>< /asp:Label> < /ItemTemplate> < /asp:TemplateField> < asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> < asp:BoundField DataField="HireDate" HeaderText="HireDate" SortExpression="HireDate" /> < /Columns> < /asp:GridView>
TemplateField:每一個雇員的姓和名都顯示在同一列里面了
感謝各位的閱讀,以上就是“如何利用TemplateField將姓和名顯示在一列中”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對如何利用TemplateField將姓和名顯示在一列中這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
文章標(biāo)題:如何利用TemplateField將姓和名顯示在一列中
當(dāng)前地址:http://www.rwnh.cn/article46/ipcseg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、品牌網(wǎng)站設(shè)計、網(wǎng)站改版、網(wǎng)頁設(shè)計公司、虛擬主機(jī)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)