加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用itemtemplate动态地将列添加到Grid-view

发布时间:2020-12-15 22:28:42 所属栏目:asp.Net 来源:网络整理
导读:我想知道如何将dynmically列添加到gridview.网格视图假设获得用户输入.我知道如何将itemtemplate用于特定的列数,但我不知道如何使用itemtemplate(文本框)字段动态添加列并生成数据绑定. 解决方法 您需要创建一个实现ITemplate的类,完整代码如下: public cla
我想知道如何将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类以添加不同类型的控件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读