怎么实现gridview中加checkbox 多选post(get)到另外一个页面

enasp 2008-12-23 03:56:37
怎么实现gridview中加checkbox 多选后
然后通过一个button 事件
post(get)到另外一个页面
...全文
191 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjybushiren88888 2008-12-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jiangshun 的回复:]
循环gridview的checkbox,取道选中的checkbox,然后在传到另一个页面
[/Quote]

或者加html的checkbox Request.Form也可以取
erytbc 2008-12-25
  • 打赏
  • 举报
回复
不晓得这样还行吗?请指教。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" language="javascript">
function GetLinkInfo(Obj,PhTmp)
{
var StrTmp=document.all["PhIDHidden"].value;
if(StrTmp=="")
{
document.all["PhIDHidden"].value=PhTmp;
}
else
{
var ArrStrTmp=StrTmp.split(",");
var StrExist="0";
var qq=0;
for(qq=0;qq<=ArrStrTmp.length-1;qq++)
{
if(ArrStrTmp[qq]==PhTmp)
{
StrExist="1";
break;
}
}

if(Obj.checked==true)
{
if(StrExist!="1")
{
document.all["PhIDHidden"].value=StrTmp+","+PhTmp;
}
}
else
{
if(StrExist=="1")
{
var tmptmp="";
if(qq==0)
{
document.all["PhIDHidden"].value=StrTmp.substring(StrTmp.indexOf(",")+1);
if(qq==ArrStrTmp.length-1)
{
document.all["PhIDHidden"].value="";
}
}
else
{
if(qq==ArrStrTmp.length-1)
{
document.all["PhIDHidden"].value=StrTmp.substring(0,StrTmp.lastIndexOf(","));
}
else
{
tmptmp=","+PhTmp+",";
document.all["PhIDHidden"].value= StrTmp.replace(tmptmp,",");
}
}
}
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<input id="PhIDHidden" runat="server" type="hidden" />
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
<asp:BoundField DataField="author" HeaderText="author" SortExpression="author" />
<asp:TemplateField>
<ItemTemplate>
<input id="chkExport" type="checkbox" runat="server"/>
</ItemTemplate>
<HeaderTemplate>
<asp:LinkButton ID="DelBts" runat="server" OnClick="Del_Click">删除</asp:LinkButton>
</HeaderTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


</div>
</form>
</body>
</html>

protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=1E975CA0565B42E;Initial Catalog=message;User ID=sa;Password=123456");
SqlDataAdapter da = new SqlDataAdapter("select * from messageTable",conn);
DataSet ds = new DataSet();
da.Fill(ds,"table1");
GridView1.DataSource = ds;
GridView1.DataBind();
}
override protected void OnInit(EventArgs e)
{
//InitializeComponent();
this.GridView1.RowCreated += new GridViewRowEventHandler(RowCreated);
base.OnInit(e);
}

public void RowCreated(object sender, GridViewRowEventArgs e)
{
DataRowView view1;
if (e.Row.RowType != DataControlRowType.DataRow)
view1 = null;
else
view1 = e.Row.DataItem as DataRowView;

if (view1 == null) return;

string PhTmp = view1["id"].ToString();
HtmlInputCheckBox ChkTmp = (HtmlInputCheckBox)e.Row.FindControl("chkExport");
if (ChkTmp != null)
{
ChkTmp.Attributes.Add("onclick", "GetLinkInfo(this,'" + PhTmp + "')");
}
}


protected void Del_Click(object sender, EventArgs e)
{
if (PhIDHidden.Value != "")
{
Response.Redirect("somePage.aspx?YourId="+PhIDHidden.Value);
}
}
takako_mu 2008-12-25
  • 打赏
  • 举报
回复
前臺代碼

<asp:TemplateField HeaderText="Check">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
<HeaderStyle Width="1%" Wrap="false" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>

后臺代碼

protected void BtnResend_Click(object sender, EventArgs e)
{
string YourID = "";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox CheckBox1 = (CheckBox)GridView1.Rows[i].Cells[0].FindControl("CheckBox1");
if (CheckBox1.Checked)
{
YourID += GridView1.Rows[i].Cells[1].Text.Trim();
YourID += ",";
}
}
string YourIDString = YourID.TrimEnd(',');
Response.Redirect("YourPageB.aspx?YourID =" + YourID);
//也可以用session傳值
takako_mu 2008-12-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 enasp 的帖子:]
怎么实现gridview中加checkbox 多选后
然后通过一个button 事件
post(get)到另外一个页面
[/Quote]
1.模板列添加chackbox
2.遍歷Gridview,如果選中,記錄下keyID,組合成一個數組或字符串到另一個頁面。
enasp 2008-12-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 takako_mu 的回复:]
前臺代碼

HTML code
<asp:TemplateField HeaderText="Check">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
<HeaderStyle Width="1%" Wrap="false" />
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>




[/Quote]

不行,插入为空

接收为b.php

<?
$title=$_post['title']
?>
enasp 2008-12-23
  • 打赏
  • 举报
回复
循环取数据。
循环插入数据库。
超人Q 2008-12-23
  • 打赏
  • 举报
回复
怎么实现,用GridView的模板列:
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" Width="4%" />
<ItemTemplate>
<asp:CheckBox ID="cb" runat="server" onclick="a(this);" />
</ItemTemplate>
</asp:TemplateField>
方法就如一楼说的,循环去取
jiangshun 2008-12-23
  • 打赏
  • 举报
回复
循环gridview的checkbox,取道选中的checkbox,然后在传到另一个页面

62,047

社区成员

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

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

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

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