【问题标题】:gridview adding a new rowgridview 添加新行
【发布时间】:2011-08-29 17:42:07
【问题描述】:

我有一个网格视图,其中项目模板绑定到 sql 数据源。我需要在特定行中的最后一个文本框项目模板的 textchanged 事件上添加一个新行。问题是当我添加新行时,我输入的前一行值不显示。有人可以给我保留这些值的代码吗?请将代码保留在 c# 中。

谢谢

SqlDataAdapter ddm = new SqlDataAdapter(cdm);
DataTable dss = new DataTable();
ddm.Fill(dss);
GridView1.DataSource = dss;
GridView1.DataBind();
for (int i = 0; i <= dss.Rows.Count - 1; i++)
{
   DropDownList dd1 = (DropDownList)GridView1.Rows[i].Cells[1].FindControl("ddl1");

   dd1.DataSource = dss;
   dd1.DataTextField = "Material_Details";
   dd1.DataBind();
}

cn.Close();
//code for new row

DataRow dr = dss.NewRow;
dss.Rows.Add(dr); 

【问题讨论】:

  • 到目前为止你写了什么代码?
  • 我创建了一个数据行作为新行并将其添加到我的数据表中。但是一旦添加了新行,之前的行值就会消失。
  • @RAHUL:他的意思是,向我们展示您目前拥有的代码。我们无法建议对我们未见过的代码进行改进。
  • 您需要将此代码添加到问题中。编辑您的问题,并清楚地显示您迄今为止尝试过的代码
  • 忘记我添加的下拉列表......

标签: c# asp.net gridview


【解决方案1】:

据我了解,您正在输入值,然后触发添加新行的回发。您需要在回发期间获取您输入的值并保存/重新显示它们,否则它们会丢失。

通过查找它们的 _Changed 事件处理程序(或在带有 if(IsPostBack){ save values } 的 Load() 中)并将它们保存/添加到 DataTable 以在您重新显示在网格中时,您可以像任何其他方式一样保存它们-绑定它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多