扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者