GridView是由一組字段(Field)組成的,它們都指定的了來自DataSource中的什么屬性需要用到自己的輸出呈現中。最簡單的字段類型是BoundField,它僅將數據簡單的顯示為文本。其他的字段類型使用交互HTML元素(alternate HTML elements)來顯示數據。比如說,CheckBoxField將被呈現為一個CheckBox,其選中狀態由某特定數據字段的值來決定;ImageField則將某特定數據字段呈現為一個圖片,當然,這個數據字段中應該放的是圖片類型的數據。超級鏈接和按鈕的狀態取決于使用HyperLinkField或ButtonField字段類型的數據字段的值。
要將一個BoundField轉換成TemplateField,我們可以在GridView的智能標簽的彈出菜單中點擊“編輯列”(Edit Columns)。在彈出對話框的左下角的列表中選擇需要轉換的BoundField,然后點擊右下角的“將此列轉換成模板列”(Convert this field into a TemplateField)即可。
protected string DisplayDaysOnJob(Northwind.EmployeesRow employee)
{
// Make sure HiredDate is not null... if so, return "Unknown"
if (employee.IsHireDateNull())
return "Unknown";
else
{
// Returns the number of days between the current
// date/time and HireDate
TimeSpan ts = DateTime.Now.Subtract(employee.HireDate);
return ts.Days.ToString("#,##0");
}
}
將這個新的模板列的頁眉文本(HeaderText)設置成“Days on the Job”,并將其ItemStyle的水平對齊(HorizontalAlign)設置為居中(Center)。要調用DisplayDaysOnJob方法,我們需要給這個模板列添加一個ItemTemplate并加上如下的數據綁定代碼:
Scott Mitchell,著有六本ASP/ASP.NET方面的書,是4GuysFromRolla.com的創始人,自1998年以來一直應用微軟Web技術。Scott是個獨立的技術咨詢顧問,培訓師,作家,最近完成了將由Sams出版社出版的新作,24小時內精通ASP.NET 2.0。他的聯系電郵為mitchell@4guysfromrolla.com,也可以通過他的博客http://ScottOnWriting.NET與他聯系。