将一条数据提交到DataTable并在GridView里显示的问题!

xycit 2009-01-14 12:26:27
页面有一行文本框做数据录入,一个按钮将数据提交到DataTable,并在GridView里显示!代码如下:

protected void Button4_Click(object sender, EventArgs e)
{
if (this.TextBox6.Text != "" && this.TextBox7.Text != "" && this.TextBox8.Text != "" && this.TextBox9.Text != "" && this.TextBox10.Text != "" && this.TextBox11.Text != "")
{
DataTable dt = new DataTable();
dt.Columns.Add("clothname");
dt.Columns.Add("color");
dt.Columns.Add("purpose");
dt.Columns.Add("source");
dt.Columns.Add("technology_Width");
dt.Columns.Add("technology_singleexpend");
dt.Columns.Add("cutout_Width");
dt.Columns.Add("cutout_singleexpend");
dt.Columns.Add("stock_Width");
dt.Columns.Add("stock_singleexpend");
dt.Columns.Add("clientprovider_Width");
dt.Columns.Add("clientprovider_singleexpend");
DataRow dr = dt.NewRow();
dr["clothname"] = this.TextBox6.Text.ToString();
dr["color"] = this.TextBox7.Text.ToString();
dr["purpose"] =this.DropDownList2.Text.ToString();
dr["source"] =this.DropDownList3.Text.ToString();
dr["technology_Width"] =this.DropDownList4.Text.ToString();
dr["technology_singleexpend"] =this.TextBox8.Text.ToString();
dr["cutout_Width"] =this.DropDownList5.Text.ToString();
dr["cutout_singleexpend"] =this.TextBox9.Text.ToString();
dr["stock_Width"] =this.DropDownList6.Text.ToString();
dr["stock_singleexpend"] =this.TextBox10.Text.ToString();
dr["clientprovider_Width"] =this.DropDownList7.Text.ToString();
dr["clientprovider_singleexpend"] = this.TextBox11.Text.ToString();

dt.Rows.Add(dr);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();

}else
{
MessageBox.Show(Button4, Button4.GetType(), "请将数据填写完整!");
}

问题就是我想重复提交(点提交按钮提交一行GridView就显示一行),并在GridView里显示多条数据!我现在的方法在GridView里只能显示一条数据!
求解决方案!(数据不进数据库!都是在内存中操作!)
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovehongyun 2009-01-14
  • 打赏
  • 举报
回复
随便写了一下,你试试吧,代码重复的部分可以提出来做成方法


protected void Button4_Click(object sender, EventArgs e)
{
if (this.TextBox6.Text != "" && this.TextBox7.Text != "" && this.TextBox8.Text != "" && this.TextBox9.Text != "" && this.TextBox10.Text != "" && this.TextBox11.Text != "")
{
DataTable dt = null;
if(ViewState["dt"]!=null)
{
dt = (DataTable)ViewState["dt"];
DataRow dr = dt.NewRow();
dr["clothname"] = this.TextBox6.Text.ToString();
dr["color"] = this.TextBox7.Text.ToString();
dr["purpose"] =this.DropDownList2.Text.ToString();
dr["source"] =this.DropDownList3.Text.ToString();
dr["technology_Width"] =this.DropDownList4.Text.ToString();
dr["technology_singleexpend"] =this.TextBox8.Text.ToString();
dr["cutout_Width"] =this.DropDownList5.Text.ToString();
dr["cutout_singleexpend"] =this.TextBox9.Text.ToString();
dr["stock_Width"] =this.DropDownList6.Text.ToString();
dr["stock_singleexpend"] =this.TextBox10.Text.ToString();
dr["clientprovider_Width"] =this.DropDownList7.Text.ToString();
dr["clientprovider_singleexpend"] = this.TextBox11.Text.ToString();

dt.Rows.Add(dr);

}
else
{
dt = new DataTable();
dt.Columns.Add("clothname");
dt.Columns.Add("color");
dt.Columns.Add("purpose");
dt.Columns.Add("source");
dt.Columns.Add("technology_Width");
dt.Columns.Add("technology_singleexpend");
dt.Columns.Add("cutout_Width");
dt.Columns.Add("cutout_singleexpend");
dt.Columns.Add("stock_Width");
dt.Columns.Add("stock_singleexpend");
dt.Columns.Add("clientprovider_Width");
dt.Columns.Add("clientprovider_singleexpend");
DataRow dr = dt.NewRow();
dr["clothname"] = this.TextBox6.Text.ToString();
dr["color"] = this.TextBox7.Text.ToString();
dr["purpose"] =this.DropDownList2.Text.ToString();
dr["source"] =this.DropDownList3.Text.ToString();
dr["technology_Width"] =this.DropDownList4.Text.ToString();
dr["technology_singleexpend"] =this.TextBox8.Text.ToString();
dr["cutout_Width"] =this.DropDownList5.Text.ToString();
dr["cutout_singleexpend"] =this.TextBox9.Text.ToString();
dr["stock_Width"] =this.DropDownList6.Text.ToString();
dr["stock_singleexpend"] =this.TextBox10.Text.ToString();
dr["clientprovider_Width"] =this.DropDownList7.Text.ToString();
dr["clientprovider_singleexpend"] = this.TextBox11.Text.ToString();

dt.Rows.Add(dr);
}

ViewState["dt"] = dt;
this.GridView1.DataSource = dt;
this.GridView1.DataBind();

}else
{
MessageBox.Show(Button4, Button4.GetType(), "请将数据填写完整!");
}
}
takako_mu 2009-01-14
  • 打赏
  • 举报
回复
因為你每次都是new一個新Datatable出來,
可以定義一個全局變量的Datatable
mengxj85 2009-01-14
  • 打赏
  • 举报
回复
用静态变量(考虑用户数量,多人公用会出错)保存Datatable,或者Session……
xycit 2009-01-14
  • 打赏
  • 举报
回复
非常感谢‘潇湘夜雨’问题已解决!
HDNGO 2009-01-14
  • 打赏
  • 举报
回复
ViewState一下吧,要不然,肯定丢了~

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧