科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件GridView传多个值并同时添加多条记录

GridView传多个值并同时添加多条记录

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

GridView传多个值并同时添加多条记录

作者:csdn 来源:csdn 2009年12月15日

关键字: 问答 ASP.NET

  • 评论
  • 分享微博
  • 分享邮件

GridView传多个值并同时添加多条记录

  string PKname = "";
  foreach (GridViewRow row in this.GridView1.Rows)
       {
           CheckBox cbox = (CheckBox)row.FindControl("chkItem");
           if (cbox.Checked)
           {
              PKname = this.GridView1.DataKeys[row.RowIndex].Value.ToString().Trim();
            }

              Response.Redirect("ME_Info_RecordAdd.aspx?MI_AssetSerial=" + PKname);
              Response.Write(PKname);
        }

 

我想获取GridView中checkbox的多个值,以上是我的代码,我想把获取的多个PKname(编号)值传递到另一个页面(这个页面有个Hidden1)

以下就是另一个页面的添加代码(可是这段代码只能添加一条记录,我想把上面传递过来的多个编号,都添加同样的记录)
C# code
 this.Hidden1.Value = Request["MI_AssetSerial"]; 
            string add_sql = "insert into ME_UseInfo(ME_Info_MI_AssetSerial,MU_StartDate,MU_UseDept,MU_User)" +
                            " values(@MI_AssetSerial,@MU_StartDate,@MU_UseDept,@MU_User)";
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            conn.Open();
            cmd = new SqlCommand(add_sql, conn);

            cmd.Parameters.Add("@MI_AssetSerial", SqlDbType.NVarChar, 50).Value = this.Hidden1.Value;
            cmd.Parameters.Add("@MU_StartDate", SqlDbType.NVarChar, 10).Value = this.txtbuydate.Value;
            cmd.Parameters.Add("@MU_UseDept", SqlDbType.NVarChar, 50).Value = this.ddlMU_UseDept.SelectedItem.Text;
            cmd.Parameters.Add("@MU_User", SqlDbType.NVarChar, 10).Value = this.txtMU_User.Text;

            cmd.ExecuteNonQuery();

 

PKname = this.GridView1.DataKeys[row.RowIndex].Value.ToString().Trim();

你这段似乎有点问题,因为最后只能得到最后一个选择的checkbox,用
PKname += this.GridView1.DataKeys[row.RowIndex].Value.ToString().Trim()+",";
if(PKname.length > 0)
PKname = PKname.substring(0,PKname.length-1);
后面的代码就用循环便利下,看能行否


在下一个页面 中 this.Hidden1.Value = Request["MI_AssetSerial"];

这里面包含了你选择的所有的选择的checkbox,用,搁开了
string[] temp = this.Hiddel1.Value.split(',');

然后将你的 这一段:

string add_sql = "insert into ME_UseInfo(ME_Info_MI_AssetSerial,MU_StartDate,MU_UseDept,MU_User)" +
                            " values(@MI_AssetSerial,@MU_StartDate,@MU_UseDept,@MU_User)";
            conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
            conn.Open();
            cmd = new SqlCommand(add_sql, conn);

            cmd.Parameters.Add("@MI_AssetSerial", SqlDbType.NVarChar, 50).Value = this.Hidden1.Value;
            cmd.Parameters.Add("@MU_StartDate", SqlDbType.NVarChar, 10).Value = this.txtbuydate.Value;
            cmd.Parameters.Add("@MU_UseDept", SqlDbType.NVarChar, 50).Value = this.ddlMU_UseDept.SelectedItem.Text;
            cmd.Parameters.Add("@MU_User", SqlDbType.NVarChar, 10).Value = this.txtMU_User.Text;

            cmd.ExecuteNonQuery();


写进一个方法,比如:insert(string s);

然后循环temp数组,把每个选择的checkbox 的值都传给参数,调用方法就可以了

 

string PKname = "";
  foreach (GridViewRow row in this.GridView1.Rows)
      {
          CheckBox cbox = (CheckBox)row.FindControl("chkItem");
          if (cbox.Checked)
          {
              PKname += this.GridView1.DataKeys[row.RowIndex].Value.ToString().Trim()+",";
            }             
        }Response.Redirect("ME_Info_RecordAdd.aspx?MI_AssetSerial=" + PKname);
              Response.Write(PKname);

在另外一个页面解析字符串,然后分别执行

 

foreach (GridViewRow row in this.GridView1.Rows)
      {
          CheckBox cbox = (CheckBox)row.FindControl("chkItem");
          if (cbox.Checked)
          {
              PKname+ = this.GridView1.DataKeys[row.RowIndex].Value.ToString().Trim()+",";
            }
}
Response.Redirect("ME_Info_RecordAdd.aspx?MI_AssetSerial=" + PKname);
  Response.Write(PKname);

Request.QueryString["MI_AssetSerial"].ToString()
最好用server.transfer通过属性传递值

 

这个:string PKname = "";
  foreach (GridViewRow row in this.GridView1.Rows)
      {
          CheckBox cbox = (CheckBox)row.FindControl("chkItem");
          if (cbox.Checked)
          {
              PKname += this.GridView1.DataKeys[row.RowIndex].Value.ToString().Trim()+",";
            }             
        }Response.Redirect("ME_Info_RecordAdd.aspx?MI_AssetSerial=" + PKname);
              Response.Write(PKname);

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章