我想知道如何将dynmically列添加到gridview.网格视图假设获得用户输入.我知道如何将itemtemplate用于特定的列数,但我不知道如何使用itemtemplate(文本框)字段动态添加列并生成数据绑定.
解决方法
您需要创建一个实现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(); }
的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类以添加不同类型的控件
原文地址:https://www.jb51.cc/aspnet/249210.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。