GridView 中 Checkbox取值问题,急,急,急

benben_tong 2012-03-30 03:14:51
<asp:GridView ID="GvNewsInfo" runat="server" AutoGenerateColumns="False" DataKeyNames="JobID"
EmptyDataText="当前没有任何招聘信息!" Width="100%" AllowPaging="True" EnableModelValidation="True">
<Columns>
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="ChkItem" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" />
</asp:TemplateField>
<asp:BoundField DataField="JobID" HeaderText="招聘ID" InsertVisible="False" ReadOnly="True"
SortExpression="JobID" />
</Columns>
<HeaderStyle BackColor="#E9F3D6" ForeColor="#5C9948"></HeaderStyle>
<PagerStyle BackColor="#E9F3D6"></PagerStyle>
</asp:GridView>


现在有这么一个GridView,现在我要将第一列复选框选中的值存到DataTable中。请问各位大侠,这个该如何实现啊?

有帮助的解答者分数不会少。急。急。急啊、、
...全文
192 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
尼古拉特斯拉 2012-03-31
  • 打赏
  • 举报
回复
前台:
<input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%#Eval("UserID") %>' />
后台
public string Getid()
{
string streid = "";
for (int i = 0; i < this.GvNewsInfo.Rows.Count; i++)  //根据Repeater 控件的情况执行循环判断目标复选框是否被选中
{
HtmlInputCheckBox CB = (HtmlInputCheckBox)this.Repeater1.Items[i].FindControl("CheckBox"); //获取一个目标复选框情况
if (CB.Checked == true) //判断该复选框是否被选中
{
streid = streid + CB.Value + ","; //程序处理代码
}
}
if (streid.Length > 0)
{
streid = streid.Remove(streid.Length - 1);
}
return streid;
}
得到你选中的ID 以,分开的 数组
相当之稳重 2012-03-31
  • 打赏
  • 举报
回复
给个小例子。。

foreach (GridViewRow row in GridView1.Rows)
{
bool postback = ((CheckBox)row.FindControl("CheckBox1")).AutoPostBack;
if (!postback)
{
((CheckBox)row.FindControl("CheckBox1")).AutoPostBack = true;
}
}
lisweden 2012-03-31
  • 打赏
  • 举报
回复
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
这句也放到foreach外面来
lisweden 2012-03-31
  • 打赏
  • 举报
回复
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
foreach (GridViewRow gvr in GridView1.Rows)
{

dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
CheckBox ch = (CheckBox)gvr.FindControl("ChkItem");
if (ch.Checked)
{
dr = dt.NewRow();
dr[0] = gvr.cells[1].text;
dt.Rows.Add(dr);
}
}
porschev 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 1 楼 的回复:
foreach (GridViewRow gvr in GridView1.Rows)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(……
[/Quote]



for (int i = 0; i < GvNewsInfo.Rows.Count; i++)
{
CheckBox cb = (CheckBox)GvNewsInfo.Rows[i].Cells[0].FindControl("ChkItem");
if (cb.Checked==true)
{
// GvNewsInfo.DataKeys[i].Value 这个不就是值吗?
}
}

chenqi19900130 2012-03-30
  • 打赏
  • 举报
回复
public class SmsManagerActivity extends TabActivity {
/** Called when the activity is first created. */
private TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabHost = getTabHost();//得到TabHost
// setUpConversation();
setUpDuixiang();
setUpDiaoqian();
}
benben_tong 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
foreach (GridViewRow gvr in GridView1.Rows)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.St……
[/Quote]
嗯,你这个方法是没问题的。现在的问题是,我获取不到被选中的值。
<table cellspacing="0" rules="all" border="1" id="GvNewsInfo" style="width:100%;border-collapse:collapse;">
<tr style="color:#5C9948;background-color:#E9F3D6;">
<th scope="col">选择</th><th scope="col">招聘ID</th><th scope="col">招聘职位</th>
</tr><tr onmouseover="this.style.backgroundColor='#E6F5FA'" onmouseout="this.style.backgroundColor='#FFFFFF'">
<td align="center" valign="middle" style="width:100px;">
<input id="GvNewsInfo_ctl02_ChkItem" type="checkbox" name="GvNewsInfo$ctl02$ChkItem" />
</td><td>1</td><td>
<a id="GvNewsInfo_ctl02_lnkNewsUrl" target="_blank">网络安全工程师</a>
</td>
</tr><tr onmouseover="this.style.backgroundColor='#E6F5FA'" onmouseout="this.style.backgroundColor='#FFFFFF'">
<td align="center" valign="middle" style="width:100px;">
<input id="GvNewsInfo_ctl03_ChkItem" type="checkbox" name="GvNewsInfo$ctl03$ChkItem" />
</td><td>2</td><td>
<a id="GvNewsInfo_ctl03_lnkNewsUrl" target="_blank">网络安全工程师</a>
</td>
</tr><tr onmouseover="this.style.backgroundColor='#E6F5FA'" onmouseout="this.style.backgroundColor='#FFFFFF'">
<td align="center" valign="middle" style="width:100px;">
<input id="GvNewsInfo_ctl04_ChkItem" type="checkbox" name="GvNewsInfo$ctl04$ChkItem" />
</td><td>3</td><td>
<a id="GvNewsInfo_ctl04_lnkNewsUrl" target="_blank">网络安全工程师</a>
</td>
</tr><tr onmouseover="this.style.backgroundColor='#E6F5FA'" onmouseout="this.style.backgroundColor='#FFFFFF'">
<td align="center" valign="middle" style="width:100px;">
<input id="GvNewsInfo_ctl05_ChkItem" type="checkbox" name="GvNewsInfo$ctl05$ChkItem" />
</td><td>4</td><td>
<a id="GvNewsInfo_ctl05_lnkNewsUrl" target="_blank">网络安全工程师</a>
</td>
</tr>
</table>
Im_Sorry 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
foreach (GridViewRow gvr in GridView1.Rows)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.St……
[/Quote]

按照孟子的测试下!
孟子E章 2012-03-30
  • 打赏
  • 举报
回复
foreach (GridViewRow gvr in GridView1.Rows)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
CheckBox ch = (CheckBox)gvr.FindControl("ChkItem");
if (ch.Checked)
{
dr = dt.NewRow();
dr[0] = GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();
dt.Rows.Add(dr);
}
}

62,074

社区成员

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

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

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

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