gpt4 book ai didi

asp.net - 使用 itemtemplate 将列动态添加到 GridView

转载 作者:行者123 更新时间:2023-12-02 16:04:17 27 4
gpt4 key购买 nike

我想知道如何动态添加列到gridview。 GridView 假设获取用户输入。我知道如何将 itemtemplate 用于特定的列数,但我不知道如何使用 itemtemplate (文本框)字段动态添加列并进行数据绑定(bind)。

最佳答案

您需要创建一个实现 ITemplate 的类,完整代码如下:

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

}

行数据绑定(bind)

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类来添加不同类型的控件

关于asp.net - 使用 itemtemplate 将列动态添加到 GridView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23592785/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com