师兄们,前辈们 datagrid 怎么动态显示texbox输入的内容(c#)?谢谢了!!! 比如 3个textbox 姓名,年龄,成绩。id 分别为 t1,t2,t3当我每向3个texbox输入内容一次,datagrid就增加1行,再输入数据,就再增加,以此类推,增加事件函数是一个button1按扭触发。gatagrid的标题是 (姓名 年龄 成绩 )所有数据不经过数据库。可不可以举个例子,或者就我说的情况写(是web上),再次感谢大家的帮助!! (c#) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有两种方法,一种是用dataset,一种是用List,你想用哪种?? 这个就是 行成一个数据集绑定GridView啊,再增加的时候往前面那数据集增加记录。再绑定 DataSet绑定datagrid,每次添加直接添加到Dataset中就可以了。 实例化一个DataTableDataTable dt = new DataTable();dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));dt.Columns.Add(new DataColumn("年级", typeof(System.Decimal)));dt.Columns.Add(new DataColumn("年龄", typeof(System.Decimal)));在按钮单击事件中写:DataRow dr;dr = dt.NewRow();dr[0] = "姓名";dr[1] = "年级";dr[2] = "年龄";dt.Rows.Add(dr);dataGridView1.datasource = dt;dataGridView1.databind(); 我说错了,其实用DataTable或者List就可以了 将数据DataSet保存住 添加一条记录 再绑定 详细例子如下,我测试通过了!using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page{ DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e) { CreateTable(); BindGridView(); } protected void Button1_Click(object sender, EventArgs e) { AddData(); BindGridView(); } /// <summary> /// 创建表及结构 /// </summary> private void CreateTable() { dt.Columns.Add(new DataColumn("姓名", typeof(System.String))); dt.Columns.Add(new DataColumn("年龄", typeof(System.Int32))); dt.Columns.Add(new DataColumn("成绩", typeof(System.Decimal))); } /// <summary> /// 绑定Grid /// </summary> private void BindGridView() { GridView1.DataSource = dt; GridView1.DataBind(); } /// <summary> /// 增加表中数据 /// </summary> private void AddData() { DataRow dr; dr = dt.NewRow(); dr[0] = TextBox1.Text; dr[1] = Int32.Parse(TextBox2.Text); dr[2] = Decimal.Parse(TextBox3.Text); dt.Rows.Add(dr); }} 小可飞到,t1,t2,t3是不是给dr[0],dr[1],dr[2] t1,t2,t3是不是给dr[0],dr[1],dr[2]是的只能加1行?我看看是不是代码问题,稍等 原因是增加一行后,页面向服务器提交一次,所以重新实例化一个DataTable,要用Session,稍等 using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { CreateTable(); } BindGridView(); } protected void Button1_Click(object sender, EventArgs e) { AddData(); BindGridView(); } /// <summary> /// 创建表及结构 /// </summary> private void CreateTable() { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("姓名", typeof(System.String))); dt.Columns.Add(new DataColumn("年龄", typeof(System.Int32))); dt.Columns.Add(new DataColumn("成绩", typeof(System.Decimal))); Session["myTable"] = dt; } /// <summary> /// 绑定Grid /// </summary> private void BindGridView() { DataTable dt = (DataTable)Session["myTable"]; GridView1.DataSource = dt; GridView1.DataBind(); } /// <summary> /// 增加表中数据 /// </summary> private void AddData() { DataTable dt = (DataTable)Session["myTable"]; DataRow dr; dr = dt.NewRow(); dr[0] = TextBox1.Text; dr[1] = Int32.Parse(TextBox2.Text); dr[2] = Decimal.Parse(TextBox3.Text); dt.Rows.Add(dr); Session["myTable"] = dt; }} 这个我前段时间做过,显示要绑定的ds放入session(你没有这个要求);取出session后,递交给DataTable;然后对dt进行增加删除的操作;最后进行显示控件的绑定;具体过程就这样; 少了一个:最后进行显示控件的绑定;这个后面还需要把dt数据再次存入session hy_lihuan() ( ) 信誉:98 Blog 2007-3-17 11:29:08 得分: 0 少了一个:最后进行显示控件的绑定;这个后面还需要把dt数据再次存入session----------------------------顺序应该是先存再绑定 谢谢小可飞刀,成功了。怎么给分??!!,最后一个问题,我最终想实现先统计总成绩,但中间失误错添加了1个成绩,要在datagrid里删除这行,怎么实现呢?还有我要将数据录入数据库,我知道要循环读gridview的每行每列,那怎么表示,哪行的哪列呢? 读GRIDVIEW其实就是SELECT,这个你可以看看相关SQL语句..select 字段1,字段2.... from 表名 where 条件这样读取之后,绑定到GRIDVIEW,排列方式就是字段1 字段2 字段3关于行,那当然是 where 比如where id='1'那么你读的就是ID字段=1的所有数据,显示字段1,字段2,字段3。一般如果只读一条的话,应该要在数据库建主键 怎么用JS回显数据? 急!Repeater 中改变行的背景色 如何判断URL中的某个参数是否存在 怎么通过button 来更改Lable的值 httpwatch pro 如何安装 请教各位如何向数据库中写入一篇文章? 关于girdView时间显示问题 连题目都不知道该怎么定了。。。大家进来看看! 如何实现搜索功能! VS2015中如何使用TypeScript,TypeScript中如何使用Jquery啊 关闭当前窗口 MMD C#的人死哪儿去了,为什么没人发源码?
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));
dt.Columns.Add(new DataColumn("年级", typeof(System.Decimal)));
dt.Columns.Add(new DataColumn("年龄", typeof(System.Decimal)));在按钮单击事件中写:
DataRow dr;
dr = dt.NewRow();
dr[0] = "姓名";
dr[1] = "年级";
dr[2] = "年龄";
dt.Rows.Add(dr);
dataGridView1.datasource = dt;
dataGridView1.databind();
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
{
DataTable dt = new DataTable(); protected void Page_Load(object sender, EventArgs e)
{
CreateTable();
BindGridView();
} protected void Button1_Click(object sender, EventArgs e)
{
AddData();
BindGridView();
} /// <summary>
/// 创建表及结构
/// </summary>
private void CreateTable()
{
dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));
dt.Columns.Add(new DataColumn("年龄", typeof(System.Int32)));
dt.Columns.Add(new DataColumn("成绩", typeof(System.Decimal)));
} /// <summary>
/// 绑定Grid
/// </summary>
private void BindGridView()
{
GridView1.DataSource = dt;
GridView1.DataBind();
} /// <summary>
/// 增加表中数据
/// </summary>
private void AddData()
{
DataRow dr;
dr = dt.NewRow();
dr[0] = TextBox1.Text;
dr[1] = Int32.Parse(TextBox2.Text);
dr[2] = Decimal.Parse(TextBox3.Text);
dt.Rows.Add(dr);
}}
只能加1行?我看看是不是代码问题,稍等
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CreateTable();
} BindGridView();
} protected void Button1_Click(object sender, EventArgs e)
{
AddData();
BindGridView();
} /// <summary>
/// 创建表及结构
/// </summary>
private void CreateTable()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("姓名", typeof(System.String)));
dt.Columns.Add(new DataColumn("年龄", typeof(System.Int32)));
dt.Columns.Add(new DataColumn("成绩", typeof(System.Decimal)));
Session["myTable"] = dt;
} /// <summary>
/// 绑定Grid
/// </summary>
private void BindGridView()
{
DataTable dt = (DataTable)Session["myTable"];
GridView1.DataSource = dt;
GridView1.DataBind();
} /// <summary>
/// 增加表中数据
/// </summary>
private void AddData()
{
DataTable dt = (DataTable)Session["myTable"];
DataRow dr;
dr = dt.NewRow();
dr[0] = TextBox1.Text;
dr[1] = Int32.Parse(TextBox2.Text);
dr[2] = Decimal.Parse(TextBox3.Text);
dt.Rows.Add(dr);
Session["myTable"] = dt;
}}
取出session后,递交给DataTable;
然后对dt进行增加删除的操作;
最后进行显示控件的绑定;
具体过程就这样;
最后进行显示控件的绑定;
这个后面还需要把dt数据再次存入session
少了一个:
最后进行显示控件的绑定;
这个后面还需要把dt数据再次存入session----------------------------
顺序应该是先存再绑定
最后一个问题,我最终想实现先统计总成绩,但中间失误错添加了1个成绩,要在datagrid里删除这行,怎么实现呢?还有我要将数据录入数据库,我知道要循环读gridview的每行每列,那怎么表示,哪行的哪列呢?
select 字段1,字段2.... from 表名 where 条件
这样读取之后,绑定到GRIDVIEW,排列方式就是字段1 字段2 字段3
关于行,那当然是 where
比如where id='1'
那么你读的就是ID字段=1的所有数据,显示字段1,字段2,字段3。
一般如果只读一条的话,应该要在数据库建主键