ASP.NET DetailsView中格式化單元格
在ASP.NET DetailsView中,我們已經(jīng)知道即將綁定的UnitPrice是否高于$75.00,現(xiàn)在我們來看看怎么通過編碼調(diào)整UnitPrice的格式,我們可以通過修改DetailsViewID.Rows[index];修改一行數(shù)據(jù),而且我們可以通過訪問DetailsViewID.Rows[index].Cells[index]來訪問某一單元格,這樣我們可以通過修改與格式相關(guān)的屬性來格式化這一單元格
訪問某一行需要得到某行的索引,索引從0開始, UnitPrice 在 DetailsView中是第15行, 假設(shè)他在第四行那么我們可以通過ExpensiveProductsPriceInBoldItalic.Rows[4]來訪問. 這時我們可以通過下面的代碼將這一行顯示為粗體,italic 字體
- ExpensiveProductsPriceInBoldItalic.Rows[4].Font.Bold = true;
- ExpensiveProductsPriceInBoldItalic.Rows[4].Font.Italic = true;
然而,這樣將會格式化Label和值,如果我們只想將值格式話,而且我們需要將格式應(yīng)用到當(dāng)前行的第二格,請看下面的代碼
- ExpensiveProductsPriceInBoldItalic.Rows[4].Cells[1].Font.Bold = true;
- ExpensiveProductsPriceInBoldItalic.Rows[4].Cells[1].Font.Italic = true;
我們還可以通過StyleSheet 來顯示標(biāo)記和樣式相關(guān)信息,而不是用確定的某一行某一列來設(shè)置格式,我們用CSS來控制格式,打開Styles.css 文件,添加一個新的Class命名為ExpensivePriceEmphasis按照下面的代碼
- CSS
- .ExpensivePriceEmphasis
- {
- font-weight: bold;
- font-style: italic;
- }
然后再DataBound事件中,設(shè)置單元的CssClass為ExpensivePriceEmphasis,在DataBound事件處理中添加
當(dāng)查看Chai(費(fèi)用低于$75.00),價格將會用正常格式顯示 圖4),但是當(dāng)查看Mishi Kobe Niku,(價格為$97.00)則會用我們設(shè)置的格式顯示(圖5)
ASP.NET DetailsView: 價格低于$75.00將會用正常格式顯示
ASP.NET DetailsView: 價格高于$75.00將會用 粗體, Italic 字體顯示
使用FormView控件的 DataBound 事件
綁定到FormView數(shù)據(jù)的步驟和DetailsView的步驟類似都要創(chuàng)建一個DataBound事件處理, 聲明綁定到控件的DataItem類型屬性, 然后執(zhí)行綁定。然而,他們更新的方式不同
FormView不包括任何綁定列也不包含行的集合, 取而代之的是他由一系列包含若干靜態(tài)HTML, Web控件,綁定表達(dá)式的模板組合。調(diào)整 FormView的外觀涉及到調(diào)整一個或多個FormView的模板
讓我們像前一個例子那樣用FormView列出產(chǎn)品項(xiàng),但是這次我們僅僅用紅色字體顯示units小于等于10的產(chǎn)品的name和units
【編輯推薦】