我在一个页面中添加了3个GridView,ID分别为GridView1,GridView2,GridView3.和3个SqlDataSource控件,ID分别为SqlDataSource1,SqlDataSource2,SqlDataSource3.
下面以第一个GridView和SqlDataSource为例,其他几个一样。<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ItemID"
DataSourceID="SqlDataSource1" ShowHeader="False" Width="264px">
<Columns>
<asp:BoundField DataField="ItemID" HeaderText="ItemID" InsertVisible="False" SortExpression="ItemID" />
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="ItemID" DataNavigateUrlFormatString="show.aspx?ItemID={0}"
DataTextField="ItemName" HeaderText="ItemName" SortExpression="ItemName" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:VoteConnectionString %>"
SelectCommand="SELECT [ItemName], [ItemID] FROM [VoteItem] where ItemID BETWEEN 1 AND 40">
</asp:SqlDataSource>ItemOperation io = new ItemOperation();
//遍历网格控件中的每一行
foreach (GridViewRow rowview in GridView1.Rows)
{
//主要搜索模板列中的CheckBox控件
CheckBox check = (CheckBox)rowview.Cells[2].FindControl("CheckBox1");
//如果被选中
if (check.Checked)
{
//更新数据库中的被投次数
io.UpdateVote(int.Parse(rowview.Cells[0].Text));
this.btnVote.Enabled = false;
}
}
其中UpdateVote是我写的一个更新数据库中的被投次数方法。我知道在GridView模板列CheckBox能够多选,可是怎么限制选择数目啊,比如三个GridView一共有120个ChecBox模板列(其中每一个GridView只有40个CheckBox),最多只能选择60个CheckBox。怎么弄啊。请高手帮帮忙啊,最好能提供代码,本人不胜感激。
下面以第一个GridView和SqlDataSource为例,其他几个一样。<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ItemID"
DataSourceID="SqlDataSource1" ShowHeader="False" Width="264px">
<Columns>
<asp:BoundField DataField="ItemID" HeaderText="ItemID" InsertVisible="False" SortExpression="ItemID" />
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="ItemID" DataNavigateUrlFormatString="show.aspx?ItemID={0}"
DataTextField="ItemName" HeaderText="ItemName" SortExpression="ItemName" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:VoteConnectionString %>"
SelectCommand="SELECT [ItemName], [ItemID] FROM [VoteItem] where ItemID BETWEEN 1 AND 40">
</asp:SqlDataSource>ItemOperation io = new ItemOperation();
//遍历网格控件中的每一行
foreach (GridViewRow rowview in GridView1.Rows)
{
//主要搜索模板列中的CheckBox控件
CheckBox check = (CheckBox)rowview.Cells[2].FindControl("CheckBox1");
//如果被选中
if (check.Checked)
{
//更新数据库中的被投次数
io.UpdateVote(int.Parse(rowview.Cells[0].Text));
this.btnVote.Enabled = false;
}
}
其中UpdateVote是我写的一个更新数据库中的被投次数方法。我知道在GridView模板列CheckBox能够多选,可是怎么限制选择数目啊,比如三个GridView一共有120个ChecBox模板列(其中每一个GridView只有40个CheckBox),最多只能选择60个CheckBox。怎么弄啊。请高手帮帮忙啊,最好能提供代码,本人不胜感激。
js声明一个全局变量
选中checkbox的时候+1
取消的时候-1
如何数>60了 就让当前选中的checkbox为不选中
http://topic.csdn.net/u/20081015/16/8b441a39-8905-4a1b-b4a2-6ed2c76219f9.html?166232639
<head runat="server">
<title>无标题页</title>
<script>
var count = 0;
function change(e){
if(e.checked)
count++;
else
count--;
if(count>2)
{
e.checked=false;
alert('超过2个');
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowHeader="False" Width="264px">
<Columns>
<asp:BoundField DataField="ItemID" HeaderText="ItemID" InsertVisible="False" SortExpression="ItemID" />
<asp:TemplateField>
<ItemTemplate>
<input id="Checkbox1" type="checkbox" runat="server" onclick="change(this)" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button runat="server" ID="btn" Text="提交" />
</form>
</body>
</html>楼主给分
这个事件里写你的更新数据库
这个是html控件,我用Web控件<asp:CheckBox ID="CheckBox1" runat="server" />怎么调用写好的js啊。里面没有onclick,只有CheckedChanged
<asp:CheckBox ID="CheckBox1" runat="server" onclick="change(this)" />这样写可以吗??同样能实现效果,不过就是有警告说属性“onclick”不是元素“CheckBox”的有效属性.