(GridView里有CheckBox)从数据库读取数据,有数据的让CheckBox选中,没有的让CheckBox不选中,代码怎么
两张表,GridView显示的是第一张表,第二张表中有第一张表的ID引用,查询第一张表的ID是否在第二张表中存在,存在把第一张表中那个存在的数据用CheckBox选中,没...
两张表,GridView显示的是第一张表,第二张表中有第一张表的ID引用,查询第一张表的ID是否在第二张表中存在,存在把第一张表中那个存在的数据用CheckBox选中,没有则不选中。(注:GridView显示第一张表的所有数据)急,谢谢!!
展开
3个回答
展开全部
CB列需要自行添加到GV中,然后在行绑定的时候,将其设置为选中既可。
<!-- 页面 -->
<Columns>
<asp:TemplateField>
<ItemTemplate>
asp:CheckBox ID="CheckSelect" runat="server" />
</ItemTemplate>
<HeaderStyle Width="20px" />
<HeaderTemplate>
<input id="CheckBoxAll" onclick="CheckAll()" type="checkbox" />
</HeaderTemplate>
</asp:TemplateField>
……
</Columns>
//==============*.CS文件=====================
protected void GV_RowDataBound(object sender, GridViewRowEventArgs e)
{
//自己实现一下,我这太冷了,打不动了
}
<!-- 页面 -->
<Columns>
<asp:TemplateField>
<ItemTemplate>
asp:CheckBox ID="CheckSelect" runat="server" />
</ItemTemplate>
<HeaderStyle Width="20px" />
<HeaderTemplate>
<input id="CheckBoxAll" onclick="CheckAll()" type="checkbox" />
</HeaderTemplate>
</asp:TemplateField>
……
</Columns>
//==============*.CS文件=====================
protected void GV_RowDataBound(object sender, GridViewRowEventArgs e)
{
//自己实现一下,我这太冷了,打不动了
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据源里面 多增加1列 “IsExists”(select语句来搞定 存在就true不存在就false)
分离代码
页面代码
<asp:GridView>
<Columns>
<asp:TemplateField HeaderText="Operation">
<asp:CheckBox Checked =<%#Bind("IsExists") %> runat="server" />
</asp:TemplateField>
</Columns>
</asp:GridView>
分离代码
页面代码
<asp:GridView>
<Columns>
<asp:TemplateField HeaderText="Operation">
<asp:CheckBox Checked =<%#Bind("IsExists") %> runat="server" />
</asp:TemplateField>
</Columns>
</asp:GridView>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先在GridView中加入 DataKeyNames="ID",绑定你这张GridView的主键,这样你才在数据库中去控制,
<asp:TemplateField HeaderText="选中">
<ItemTemplate>
<asp:CheckBox ID="cb1" runat ="server" AutoPostBack ="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
</ItemTemplate>
</asp:TemplateField>
然后你可以在后台代码中写
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
string id = "";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("cb1")).Checked)//当前CHECKBOX选中时
{
//i就是当前行号.
id = id + GridView1.DataKeys[i].Value.ToString()+",";
}
}
Response.Write("<script>alert('当前选中项的ID分别是:"+id+"!')</script>)");
}
<asp:TemplateField HeaderText="选中">
<ItemTemplate>
<asp:CheckBox ID="cb1" runat ="server" AutoPostBack ="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
</ItemTemplate>
</asp:TemplateField>
然后你可以在后台代码中写
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
string id = "";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("cb1")).Checked)//当前CHECKBOX选中时
{
//i就是当前行号.
id = id + GridView1.DataKeys[i].Value.ToString()+",";
}
}
Response.Write("<script>alert('当前选中项的ID分别是:"+id+"!')</script>)");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询