动态地添加列到网格视图与ItemTemplate中 [英] Add Columns dynamically to Grid-view with itemtemplate
本文介绍了动态地添加列到网格视图与ItemTemplate中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道如何添加dynmically列GridView控件。网格视图假设来获得用户的输入。我知道如何使用的ItemTemplate列的具体的没有,但我不知道如何使用的ItemTemplate(文本)域动态添加列,并进行数据绑定。
i want to know how to add column dynmically to gridview. the grid view suppose to get user input. i know how to use itemtemplate for specific no of columns, but i'm not aware how to add columns dynamically with itemtemplate (textbox) fields and make databind.
推荐答案
您需要创建一个类实现的了Itemplate ,全部code如下:
You need to create a class implementing ITemplate , Full code as following:
public class DynamicTemplateField : ITemplate
{
public void InstantiateIn(Control container)
{
//define the control to be added , i take text box as your need
TextBox txt1 = new TextBox();
txt1.ID = "txt1";
container.Controls.Add(txt1);
}
}
//Method to bind the Grid View
public void BindData()
{
TemplateField temp1 = new TemplateField(); //Create instance of Template field
temp1.HeaderText = "New Dynamic Temp Field"; //Give the header text
temp1.ItemTemplate = new DynamicTemplateField(); //Set the properties **ItemTemplate** as the instance of DynamicTemplateField class.
gv.Columns.Add(temp1); //add the instance if template field in columns of grid view
//Bind the grid view
gv.DataSource = [your data source];
gv.DataBind();
}
的RowDataBound
protected void gv_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txt1 = e.Row.FindControl("txt1") as TextBox;
txt1.Text = e.Row.DataItem["Name"]; //Assign any column value of your datasource
}
}
.aspx页面中
<asp:GridView ID = "gv" runat = "server" >
<Columns>
</Columns>
</asp:GridView>
您可以操纵的 DynamicTemplateField 类以添加控件的不同类型
You can manipulate DynamicTemplateField class to add different types of control
这篇关于动态地添加列到网格视图与ItemTemplate中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文