如何在gridview中添加复选框?

老师要求做一个学生选课系统我想在一个gridview中显示可选科目及信息,选中科目后复选框后统一提交。请问如何实现?满意后追加50分... 老师要求做一个学生选课系统
我想在一个gridview中显示可选科目及信息,选中科目后复选框后统一提交。
请问如何实现?

满意后追加50分
展开
 我来答
lbaichun
2008-12-09 · TA获得超过294个赞
知道小有建树答主
回答量:352
采纳率:0%
帮助的人:276万
展开全部
Gridview里的模版列

<asp:TemplateField HeaderText="Select">
<HeaderTemplate>
<asp:CheckBox ID="ckbAll" runat="server" onclick="javascript:SelectAllCheckboxes(this);" />
</HeaderTemplate>
<ItemStyle Width="100px" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox ID="ckbItem" runat="server" />
</ItemTemplate>
</asp:TemplateField>

上面调用的一个js!有一定的局限!只能选中!不能反选 !
想反选的话你可以在cs里给第一个checkbox加事件!

cs代码:
foreach (GridViewRow sgvRow in this.gvAdsType.Rows)
{
CheckBox cbo = (CheckBox)sgvRow.FindControl("ckbItem");
CRED_AdsEntity objEntity = new CRED_AdsEntity();
if (cbo.Checked)
{
objEntity.sAdID = this.gvAdsType.DataKeys[sgvRow.RowIndex][0].ToString();
delList.Add(objEntity);
}
}

这个是循环谁被选中的!

绑定gridview时一定要把他的datakey绑上!

加分吧!come on!!!
哈尔滨教育地图
2008-12-10 · TA获得超过903个赞
知道小有建树答主
回答量:1231
采纳率:76%
帮助的人:189万
展开全部
动态添加各列:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Height="6px" PageSize=10
Style="left: 0px; position: relative; top: 0px" Width="100%" OnPageIndexChanged="downpage_Click" AllowPaging="True">
<Columns>
<asp:TemplateField HeaderText="全<input id="chk_temp" type="checkbox" onclick="return checkAll(this)"/>选">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
……
</Columns>
</asp:GridView>
再添加js脚本
function checkAll(obj)//全选
{
for (i=0;i<document.all.length;i++)
{
if(document.all[i].type=="checkbox"||document.all[i].type=="radio")
{
document.all[i].checked=obj.checked;
}
}
}
这样就行了 点全选中间的复选框就可以全选了,当然,单个选那当然可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可以叫我表哥
推荐于2016-09-17 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1465005
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
在GridView添加一个模板列:

<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="cbSelAll" runat="server" Text="全选" AutoPostBack="True" OnCheckedChanged="cbSelAll_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbSel" runat="server" />
</ItemTemplate>
</asp:TemplateField>

用法:
protected void cbSelAll_CheckedChanged(object sender, EventArgs e)
{
CheckBox cbAll = (CheckBox)sender;
if (cbAll.Text == "全选")
{
foreach (GridViewRow gvr in GridView1.Rows)
{
CheckBox cbSel = (CheckBox)gvr.Cells[0].FindControl("cbSel");
cbSel.Checked = cbAll.Checked;
}
}
}

foreach (GridViewRow gvr in GridView1.Rows)
{
CheckBox cbSel = (CheckBox)gvr.Cells[0].FindControl("cbSel");
if (cbSel.Checked == false)
{
//...
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四喜工作室
2008-12-08 · TA获得超过133个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:43.7万
展开全部
为Gridview添加模板列,设计模板列的时候拖个CheckBox进去。引用的时候用(CheckBox)Gridview.FindControl("CheckBox1")来获取当前行的CheckBox。
PS:
可能你需要对Gridview遍历。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
710404074
2008-12-08
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
huf

参考资料: dfd

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式