GridView一定要和数据库绑定吗? 我想自己动态的往里面添加数据(行)像DataGridView那样不行吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然不是一定要和数据库绑定你可以自己创建一个datatable,给datatable创建datarow,给里面写入数值和字符串然后把这个datatable赋给GridView的datasourcegridview有数据源就显示,它不管你的数据源是哪来的 gridview 要求的数据源任何实现 IList 接口的类,包括一维数组。任何实现 IListSource 接口的类,例如 DataTable 和 DataSet 类。任何实现 IBindingList 接口的类,例如 BindingList 类。任何实现 IBindingListView 接口的类,例如 BindingSource 类。 Dim dt As DataTable = Nothing Dim hColumn As New HyperLinkColumn hColumn.HeaderText = "标题" hColumn.DataTextField = "name" hColumn.DataNavigateUrlField = "name" hColumn.DataNavigateUrlFormatString = "NewsEdit.aspx" GridView1.Columns.Add(hColumn) Dim column As BoundColumn column = New BoundColumn column.HeaderText = "内容" column.DataField = "Content" GridView1.Columns.Add(column) dt = New DataTable dt.Columns.Add("name") dt.Columns.Add("Content") Dim dr As DataRow = dt.NewRow dr(0) = "关于xxxx" dr(1) = "xxxxx" dt.Rows.Add(dr) GridView1.DataSource = dt GridView1.DataBind()大概就这样吧 刚才是vb.net版现在是c#版{ DataTable dt = null; HyperLinkColumn hColumn = new HyperLinkColumn(); hColumn.HeaderText = "标题"; hColumn.DataTextField = "name"; hColumn.DataNavigateUrlField = "name"; hColumn.DataNavigateUrlFormatString = "NewsEdit.aspx"; GridView1.Columns.Add(hColumn); BoundColumn column = default(BoundColumn); column = new BoundColumn(); column.HeaderText = "内容"; column.DataField = "Content"; GridView1.Columns.Add(column); dt = new DataTable(); dt.Columns.Add("name"); dt.Columns.Add("Content"); DataRow dr = dt.NewRow; dr(0) = "关于xxxx"; dr(1) = "xxxxx"; dt.Rows.Add(dr); GridView1.DataSource = dt; GridView1.DataBind(); } 怎么动态设计表的结构呢DataTable dataTable = new DataTable();dataTable.LoadDataRow(new string[]{"1","2","3"},true);运行时出错,说插入的数据大于列的数目了 是的。增加数据是操作在数据源上面的事,例如操作在在内存形成的对象集合(List<T>、DataTable等),界面控件不需要做任何编程修改。 你的dataTable定义完后,还没给它定义columns,直接插入row,当然就说大于列的数目了 11楼的代码运行有错无法将HyperLinkColumn转化成DataControlField 嘿嘿,搞错了,这个属性是DataGrid的要改几个属性{ DataTable dt = null; HyperLinkField hColumn = new HyperLinkField(); hColumn.HeaderText = "标题"; hColumn.DataTextField = "name"; hColumn.DataNavigateUrlFormatString = "NewsEdit.aspx"; GridView1.Columns.Add(hColumn); BoundField column = default(BoundField); column = new BoundField(); column.HeaderText = "内容"; column.DataField = "Content"; GridView1.Columns.Add(column); dt = new DataTable(); dt.Columns.Add("name"); dt.Columns.Add("Content"); DataRow dr = dt.NewRow; dr(0) = "关于xxxx"; dr(1) = "xxxxx"; dt.Rows.Add(dr); GridView1.DataSource = dt; GridView1.DataBind(); } 自己在这个基础上改吧 可以更DataGridView一样去绑定一个List集合,当然可以绑定一个方法,这个方法返回一个List集合。 如何才能仿csdn论坛当用户的输入长度过长时自动为div滚动条 刚装了SQL2005就遇到了数据库连接问题 一个acess的小问题 关于insertBefore后找不到对象的问题 asp.net和asp中 session有效时间不一致 怎么班 提示我asp.net不是1.1不能创建web程序,怎么办 有没有讲解asp.net2.0那些控件的教程 帮邦菜鸟吧!请能提供一个数据库连接及打开数据库的源代码? 关于Daily Build的实现 ! 后台怎么获取js给控件加的class值 asp.net form 验证问题 Accordion 绑值,我怎么就是绑不上去呢?大家帮我看一下,付代码
你可以自己创建一个datatable,给datatable创建datarow,给里面写入数值和字符串
然后把这个datatable赋给GridView的datasource
gridview有数据源就显示,它不管你的数据源是哪来的
Dim hColumn As New HyperLinkColumn
hColumn.HeaderText = "标题"
hColumn.DataTextField = "name"
hColumn.DataNavigateUrlField = "name"
hColumn.DataNavigateUrlFormatString = "NewsEdit.aspx"
GridView1.Columns.Add(hColumn) Dim column As BoundColumn
column = New BoundColumn
column.HeaderText = "内容"
column.DataField = "Content"
GridView1.Columns.Add(column) dt = New DataTable
dt.Columns.Add("name")
dt.Columns.Add("Content") Dim dr As DataRow = dt.NewRow
dr(0) = "关于xxxx"
dr(1) = "xxxxx"
dt.Rows.Add(dr) GridView1.DataSource = dt
GridView1.DataBind()大概就这样吧
现在是c#版
{
DataTable dt = null;
HyperLinkColumn hColumn = new HyperLinkColumn();
hColumn.HeaderText = "标题";
hColumn.DataTextField = "name";
hColumn.DataNavigateUrlField = "name";
hColumn.DataNavigateUrlFormatString = "NewsEdit.aspx";
GridView1.Columns.Add(hColumn);
BoundColumn column = default(BoundColumn);
column = new BoundColumn();
column.HeaderText = "内容";
column.DataField = "Content";
GridView1.Columns.Add(column);
dt = new DataTable();
dt.Columns.Add("name");
dt.Columns.Add("Content");
DataRow dr = dt.NewRow;
dr(0) = "关于xxxx";
dr(1) = "xxxxx";
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
}
DataTable dataTable = new DataTable();
dataTable.LoadDataRow(new string[]{"1","2","3"},true);
运行时出错,说插入的数据大于列的数目了
是的。增加数据是操作在数据源上面的事,例如操作在在内存形成的对象集合(List<T>、DataTable等),界面控件不需要做任何编程修改。
你的dataTable定义完后,还没给它定义columns,直接插入row,当然就说大于列的数目了
无法将HyperLinkColumn转化成DataControlField
要改几个属性{
DataTable dt = null;
HyperLinkField hColumn = new HyperLinkField();
hColumn.HeaderText = "标题";
hColumn.DataTextField = "name";
hColumn.DataNavigateUrlFormatString = "NewsEdit.aspx";
GridView1.Columns.Add(hColumn);
BoundField column = default(BoundField);
column = new BoundField();
column.HeaderText = "内容";
column.DataField = "Content";
GridView1.Columns.Add(column);
dt = new DataTable();
dt.Columns.Add("name");
dt.Columns.Add("Content");
DataRow dr = dt.NewRow;
dr(0) = "关于xxxx";
dr(1) = "xxxxx";
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
} 自己在这个基础上改吧