SPGridView中CheckBox TemplateField
由於SPGridView中沒有CheckBox列,所以需要我們自己開發,主要是實現ITemplate接口,然後添加一個CheckBox控件,並且在使用的時候指定是將這個CheckBox添加到Header上還是添加到Item上就可以了。具體代碼如下:
public class SPCheckboxTemplate : ITemplate
{
#region Fields
private ListItemType mItemType;
private string mColumnName = string.Empty;
private string mNavUrl = string.Empty;
private int mId = 0;
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <param name="itemType"></param>
public SPCheckboxTemplate(ListItemType itemType)
{
mItemType = itemType;
}
#region ITemplate Methods
/// <summary>
/// Instantiate into the container
/// </summary>
/// <param name="container"></param>
public void InstantiateIn(Control container)
{
Literal lt = new Literal();
switch (mItemType)
{
case ListItemType.Item:
CheckBox itemBox = new CheckBox();
itemBox.ID = "CBItem" + mId.ToString();
itemBox.DataBinding += new EventHandler(CheckBox_DataBinding);
container.Controls.Add(itemBox);
break;
case ListItemType.Header:
lt.Text = mColumnName;
CheckBox headerBox = new CheckBox();
container.Controls.Add(headerBox);
break;
}
}
#endregion
}
使用的方法如下:
TemplateField checkBoxField = new TemplateField();
checkBoxField.HeaderTemplate = new SPCheckboxTemplate(ListItemType.Header);
checkBoxField.ItemTemplate = new SPCheckboxTemplate(ListItemType.Item);
gridView.Columns.Add(checkBoxField);