问题描述:页面上有一个gridview和一个按钮,我在gridview加了一列checkbox,现在想实现点击按钮,将gridview里checkbox选中行的ID传给另一个页面 protected void Button_Print_Click(object sender, EventArgs e)
{
sqlcon = new SqlConnection(strCon);
SqlCommand sqlcom;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
string sqlstr = "Select id from MPSHZFORM1_Equip where id='" + GridView1.DataKeys[i].Value + "'";
}
}
}请问代码应该怎样补充一下,ID可能是一个集合,用什么容器传和接收?
{
sqlcon = new SqlConnection(strCon);
SqlCommand sqlcom;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
string sqlstr = "Select id from MPSHZFORM1_Equip where id='" + GridView1.DataKeys[i].Value + "'";
}
}
}请问代码应该怎样补充一下,ID可能是一个集合,用什么容器传和接收?
或者用session cookie
在另一页面中:string id=Session["id"].ToString();//将Session中的ID取出
string str;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
str &= GridView1.DataKeys[i].Value + "|" ;
}
}resoponse.redrict("xxx.aspx?id = str");
string[] str = Request.QueryString("id").Split('|');
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cbUser = (CheckBox)GridView1.Rows[i].FindControl("cbUser");
if (cbUser.Checked == true)
{
_ids+ = GridView1.Rows[i].Cells[1].Text + ",";
}
}
_ids = _ids.TrimEnd(','); Response.Redirect(“abc.aspx?id=”+_ids);
后台
用 Gridview1.Datakyes[e.rowindex].values["id"].value; //取得你点击行的ID
GridViewCheckBoxForm.aspx <script type="text/javascript" src="../JS/jquery-1.4.4.js"></script>
<script type="text/javascript">
var checkID = "";
$(function() {
$("input[type='button'][value='value']").click(function() {
checkID = "";
$("#Gridview1 input[type='checkbox']:checked").each(function() {
checkID += $(this).parent().next().html();
checkID += ",";
});
checkID = checkID.substring(0, checkID.length - 1);
window.open("ReciveCheckBoxValueForm.aspx");
});
});
</script>
<div>
<asp:gridview ID="Gridview1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ID" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="NAME" HeaderText="NAME" SortExpression="NAME" />
</Columns>
</asp:gridview>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:TestDBConnectionString %>"
SelectCommand="SELECT [ID], [NAME] FROM [Test]"></asp:SqlDataSource>
<input type=button value='value' />
</div>
ReciveCheckBoxValueForm.aspx <div>
<input type=text />
</div>
<script src="../JS/jquery-1.4.4.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("form#form1 div").eq(1).find("input").val(window.opener.checkID);
});
</script>