
如何在gridview中添加复选框?
老师要求做一个学生选课系统我想在一个gridview中显示可选科目及信息,选中科目后复选框后统一提交。请问如何实现?满意后追加50分...
老师要求做一个学生选课系统
我想在一个gridview中显示可选科目及信息,选中科目后复选框后统一提交。
请问如何实现?
满意后追加50分 展开
我想在一个gridview中显示可选科目及信息,选中科目后复选框后统一提交。
请问如何实现?
满意后追加50分 展开
展开全部
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!!!
<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!!!
展开全部
动态添加各列:
<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;
}
}
}
这样就行了 点全选中间的复选框就可以全选了,当然,单个选那当然可以了。
<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)
{
//...
}
}
<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)
{
//...
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为Gridview添加模板列,设计模板列的时候拖个CheckBox进去。引用的时候用(CheckBox)Gridview.FindControl("CheckBox1")来获取当前行的CheckBox。
PS:
可能你需要对Gridview遍历。
PS:
可能你需要对Gridview遍历。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询