100分求这个问题的解决办法,关于gridview批量添加n条记录以后,点一个保存按钮实现一次提交
我页面上有一个gridview,有一个增加按钮,还有一个提交按钮,怎么实现每点一次增加,gridview下面增加一个空行,再点"提交"按钮实现n行的记录,一次保存到数据库中 问题点数:100、回复次数:19Top
1 楼net_lover(【孟子E章】)回复于 2006-08-14 21:44:44 得分 0
不知道你这个增加多行是怎么加的,你记住每个文本输入框的name属性,在服务器端Request.Form["inputname"]即可获得值,然后用sql语句即可增加Top
2 楼amingo(Atlas 新技术讨论群:6455130(群主))回复于 2006-08-14 21:54:27 得分 0
1,路径问题,保证路径真的没有错误,是在不行你http://xxxx/xx.css用绝对路径测试
2,css含有中文,不同的编码造成的,可以将css文件在记事本里另存为utf-8即可Top
3 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-14 22:25:09 得分 0
to amingo:答非所问啊Top
4 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-14 22:27:13 得分 0
to net_lover:你有QQ嘛Top
5 楼csShooter(Sharp Shooter)回复于 2006-08-15 08:15:34 得分 0
如果你的DataGridView是绑定给DataSet就简单了,在DataSet的Table 里面添加一条空记录,再绑定给DataGridView。提交时再update()。。OKTop
6 楼fengyeng(在城里飘~~~~)回复于 2006-08-15 09:07:04 得分 0
upTop
7 楼zzz22333(下蛋公鸡公鸡中的战斗机)(书上说抽烟不好我把烟戒了;书上说喝酒不好我少喝了;书上说媳妇不好我把书撕了)回复于 2006-08-15 09:43:10 得分 0
upTop
8 楼C5662601(你学的越多 你忘的越多 你学的越少 你忘的越少)回复于 2006-08-15 09:54:36 得分 0
如果这个功能是在后台维护的 没必要做那么麻烦
要是前台我想别的方法会更好吧Top
9 楼shalen520(Love will keep us alive)回复于 2006-08-15 10:10:31 得分 50
首先构造一个空datatable放到viewstate中,每新增一行就先从viewstate取出datatable,然后往datatable插入一行并绑定Gridview,最后再放回viewstate,如此循环直到添加完毕,提交时,将viewstate中datatable的所有记录插入数据库中即可Top
10 楼leafsword_519(喝水的猪)回复于 2006-08-15 10:30:33 得分 50
同意shalen520(Love will keep us alive) ( ) 信誉:100
1、生成的DataTable或者自己构建的空的DataTable
2、ViewState["Data"] = DataTable;
3、取值:DataTable dt = (DataTable)ViewState["Data"];
4、添加数据:DataRow dr = dt.NewRow();
dr[i] = ....;
dt.Rows.Add(dr);
5、返回给ViewState:ViewState["Data"]= dt;
6、根据dt的记录插入到数据库Top
11 楼artak(甜葡萄)回复于 2006-08-15 10:43:18 得分 0
to net_lover:你有QQma ?Top
12 楼lowtemper(小镇姑娘她爹)回复于 2006-08-15 10:57:13 得分 0
存viewstates,一次性提交,只有这个办法,设datasourceid的时候可能会有麻烦,2005中没有类似的datasource类型,可能要自己做datasource,十分巨大的工作量,看你怎么权衡了Top
13 楼redsee(那年那月)回复于 2006-08-15 11:08:34 得分 0
关注 顶上去Top
14 楼sorrow_man(不会我就问,零下一度)回复于 2006-08-15 11:22:12 得分 0
学习Top
15 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-15 16:01:31 得分 0
其实只要解决这个问题就行了,用别的方法也可以Top
16 楼jame_peng(可可西里)回复于 2006-08-15 16:08:10 得分 0
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
createTable();
}
public void createTable() //创建一个空datatable
{
DataTable dt = new DataTable("inserttable");
DataColumn dcname = new DataColumn();
dcname.DataType = System.Type.GetType("System.String");
dcname.ColumnName = "name";
dt.Columns.Add(dcname);
DataColumn dcshuliang = new DataColumn();
dcshuliang.DataType = System.Type.GetType("System.Int32");
dcshuliang.ColumnName ="shuliang";
dt.Columns.Add(dcshuliang);
DataColumn price = new DataColumn();
price.ColumnName = "price";
price.DataType = System.Type.GetType("System.Double");
dt.Columns.Add(price);
//添加行
int num = Convert.ToInt32( DropDownList1.SelectedValue );
for (int i = 0; i < num; i++)
{
DataRow dr = dt.NewRow();
dr["name"] = "";
dr["shuliang"]=Convert.ToInt32("0");
dr["price"]=Convert.ToDouble("0");
dt.Rows.Add(dr);
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt = getDataTable();
SqlConnection con = new SqlConnection("server=.;database=test;uid=sa;pwd=");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
for (int i = 0; i < dt.Rows.Count; i++)
{
string strsql="insert into testdatatable values('"+dt.Rows[i]["name"]+"',"+dt.Rows[i]["shuliang"]+","+dt.Rows[i]["price"]+")";
cmd.CommandType = CommandType.Text;
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
public DataTable getDataTable()
{
DataTable dt = new DataTable("inserttable");
DataColumn dcname = new DataColumn();
dcname.DataType = System.Type.GetType("System.String");
dcname.ColumnName = "name";
dt.Columns.Add(dcname);
DataColumn dcshuliang = new DataColumn();
dcshuliang.DataType = System.Type.GetType("System.Int32");
dcshuliang.ColumnName ="shuliang";
dt.Columns.Add(dcshuliang);
DataColumn price = new DataColumn();
price.ColumnName = "price";
price.DataType = System.Type.GetType("System.Decimal");
dt.Columns.Add(price);
for (int i = 0; i < GridView1.Rows.Count; i++)
{
DataRow dr= dt.NewRow();
HtmlInputText t1 = (HtmlInputText)GridView1.Rows[i].Cells[0].FindControl("TextBox1");
HtmlInputText t2 = (HtmlInputText)GridView1.Rows[i].Cells[0].FindControl("TextBox2");
//TextBox t1 = (TextBox)GridView1.Rows[i].Cells[0].FindControl("TextBox1");
//TextBox t2 = (TextBox)GridView1.Rows[i].Cells[1].FindControl("TextBox2");
TextBox t3 = (TextBox)GridView1.Rows[i].Cells[2].FindControl("TextBox3");
//TextBox t1 = (TextBox)GridView1.FindControl("TextBox1").Controls[0];
//TextBox t2 = (TextBox)GridView1.FindControl("TextBox2").Controls[0];
//TextBox t3 = (TextBox)GridView1.FindControl("TextBox3").Controls[0];
if (t1.Value != "")
{
dr["name"] = t1.Value;//((TextBox)GridView1.FindControl("TextBox1").Controls[0]).Text;
dr["shuliang"] = t2.Value; //((TextBox)GridView1.FindControl("TextBox2").Controls[0]).Text;
dr["price"] = t3.Text;//((TextBox)GridView1.FindControl("TextBox3").Controls[0]).Text;
dt.Rows.Add(dr);
}
}
GridView2.DataSource = dt;
GridView2.DataBind();
return dt;
}
}
Top
17 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-16 13:11:40 得分 0
to jame_peng(可可西里):能给我发个例子嘛,我的邮件pingkeke@163.comTop
18 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-16 20:42:35 得分 0
upTop
19 楼CQP(悄悄的我走了,正如我悄悄的来)回复于 2006-08-17 10:26:17 得分 0
upTop




