各位好,向大家请教个问题,是这样的,我在页面上有一个GridView控件GridView1,两个文本框txtname,txtvalue和一个按钮button1,我现在想要实现的功能是这样的,我在txtname和txtvalue中填写上数据,然后按button1,这时往DataTable dt中的dt增加一列,列名为txtname所填写的字符串,这一列中各行的值都为txtvalue所填写上的值.然后把dt绑定到GridView1中去,在显示时,显示刚才所增加的列的列表头必须为刚才所增加列的列名,要求是所按一下按钮,增加一列,同时把所增加的一列显示到GridView1中去,真不知该怎么实现,在此请大家帮帮忙.先在此谢谢大家了.
解决方案 »
- thickbox如何在.net后台调用?先看看我写的!
- 菜单链接问题
- C# 调用alert提示框,点击确定后转到指定页面
- 网上都说这个是正式版,可是下载了变成了测试版""Visual Studio Express Edition Beta 2 中文版",
- 怎样利用脚本发送F4键
- gridview内 控件的查找
- 一个关于dropdownlist的小问题,在线等待
- .net运行环境安装报错,大家帮忙!在线等呢
- 关于web.config的安全性问题!!!!!
- 用asp.net GridView 信息录入系统,表头怎么做?
- 我用gridview绑定新闻表,如何双击一行打开明细?
- 救救我吧,web.config卡住了我的脖子
string[] col = 所有的列.Split(new Char[] { ',' });
for (int i = 0; i < col.Length - 1;i++ ){ GridViewTemplate temp = new GridViewTemplate(DataControlRowType.DataRow, col[i]);
TemplateField field = new TemplateField();
field.HeaderText = ...;
field.ItemTemplate = temp;
GridView1.Columns.Add(field);
}
DataView dv = new DataView(dt);
GridView1.DataSource = dv;
GridView1.DataBind();需要实现一个接口:ITemplate
public class GridViewTemplate:ITemplate
{
private DataControlRowType templateType;
private string columnName; public GridViewTemplate(DataControlRowType type, string colname){ templateType = type;
columnName = colname;
} public void InstantiateIn(System.Web.UI.Control container){ if(templateType == DataControlRowType.DataRow){ LiteralControl label = new LiteralControl();
label.DataBinding += new EventHandler(tb_DataBinding);
container.Controls.Add(label);
}
} private void tb_DataBinding(object sender, EventArgs e)
{
LiteralControl lb = (LiteralControl)sender;
GridViewRow container = (GridViewRow)lb.NamingContainer;
string str = ((DataRowView)container.DataItem)[columnName].ToString();
lb.Text = ...;
}
你修改一下就可以了
也谢谢大家的回答
DataTable.Columns.add(new dataColumn("Name",typeof(string));
DataTable.Columns.add(new dataColumn("Value",typeof(string));
//为这两列赋值
for(int i=0;i<DataTable.rows.count;i++)
{
DataTable.Rows[i]["Name"]=txtname.Text;
DataTable.Rows[i]["Value"]=txtvalue.Text;
}
GridView1.DataSource=DataTable;
GridView1.DataBind();