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);