public class GridViewTemplate : ITemplate
{
public delegate void EventHandler(object sender, EventArgs e);
public event EventHandler eh;
private DataControlRowType templateType;
private string columnName;
private string controlID;
private string columntext;
private string btnurl;
public GridViewTemplate(DataControlRowType type, string colname)
{
templateType = type;
columnName = colname;
}
public GridViewTemplate(DataControlRowType type,string controlID, string colname)
{
templateType = type;
this.controlID = controlID;
columnName = colname;
}
public GridViewTemplate(DataControlRowType type, string controlID, string colname,string Conlumntext,string _btnurl)
{
templateType = type;
this.controlID = controlID;
columnName = colname;
columntext = Conlumntext;
btnurl = _btnurl;
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal lc = new Literal();
lc.Text = columnName;
container.Controls.Add(lc);
break;
case DataControlRowType.DataRow:
LinkButton lbtn = new LinkButton();
lbtn.ID = this.controlID;
if (eh != null)
{
lbtn.Click += new System.EventHandler(eh);
}
lbtn.DataBinding+=new System.EventHandler(lbtn_DataBinding);
lbtn.PostBackUrl = btnurl;
container.Controls.Add(lbtn);
break;
default:
break;
}
}
void lbtn_DataBinding(object sender, EventArgs e)
{
LinkButton lbtn = sender as LinkButton;
if (lbtn != null)
{
GridViewRow container = lbtn.NamingContainer as GridViewRow;
if (container != null)
{
object dataValue = DataBinder.Eval(container.DataItem, columnName);
if (dataValue != DBNull.Value)
{
//lbtn.Attributes.Add("onclick","");
lbtn.Text = columntext;
lbtn.CommandName = columntext;
lbtn.CommandArgument = dataValue.ToString();
}
}
}
}
}
DataTable dtkey = pb.GetColumnlist(" iskey='是' and pageid='" + pageid + "' ").Tables[0];
if (dtkey.Rows.Count > 0)
{
strkey = dtkey.Rows[0]["columnField"].ToString();
}
TemplateField customField = new TemplateField();
customField.ShowHeader = true;
customField.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "修改");
GridViewTemplate gvt = new GridViewTemplate(DataControlRowType.DataRow, "lbtn", strkey, "修改","pagelist.aspx");
LinkButton lbtn = new LinkButton();
gvt.eh += new GridViewTemplate.EventHandler(lbtn_Click);
customField.ItemTemplate = gvt;
TemplateField tf = new TemplateField();
tf.ShowHeader = true;
tf.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "删除");
GridViewTemplate gvt2 = new GridViewTemplate(DataControlRowType.DataRow, "lbtn2", strkey, "删除","pageadd.aspx");
tf.ItemTemplate = gvt2;
this.gv1.Columns.Add(customField);
this.gv1.Columns.Add(tf);