在dataGrid里添加checkbox的问题
我在在dataGrid摸版列里添加checkbox控件,我想做的是怎么才能控制用户通过checkbox来选中的记录在5条以内,各位高人快来指点啊 问题点数:100、回复次数:17Top
1 楼astra1(Hyperion)回复于 2006-03-08 00:20:38 得分 100
在5条以内?意思就是第6条不让点了?
这样做
模版的checkbox加上onclick事件,象这样
<input onclick='return doSelect();' type=checkbox>
然后加上这个JS方法
function doSelect()
{
var cb=DataGrid1.getElementsByTagName("input");//假设你datagrid的ID是DataGrid1
var count=0;
for(var i=0;i<cb.length;i++)
if(cb[i].type=="checkbox"&&cb[i].checked)
count++;
if(count>5)return false;//大于5的话不让选
}Top
2 楼boylzm(asdf)回复于 2006-03-08 02:06:04 得分 0
是这个意思,但可不可以用服务器代码来实现啊Top
3 楼astra1(Hyperion)回复于 2006-03-08 03:07:10 得分 0
checkbox的选择是WEB界面操作,怎么可能用服务器代码实现呢?
难道准备每选一个checkbox都提交(postback)一遍?
如果你担心安全性,可以在服务端加判断
但操作界面上还是得用JS实现Top
4 楼astra1(Hyperion)回复于 2006-03-08 03:18:41 得分 0
//服务器端判断代码,假设你的checkbox.name=cb
if(Request.Form.Get("cb").Split(',').Length>5)
{
//do something
}Top
5 楼boylzm(asdf)回复于 2006-03-08 05:29:23 得分 0
大哥,你给我的方法,没什么作用啊,不知道是不是我没弄好。我把代码贴出来你看看
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<script language="javascript">
function doSelect()
{
var cb=DataGrid1.getElementsByTagName("input");//假设你datagrid的ID是DataGrid1
var count=0;
for(var i=0;i<cb.length;i++)
if(cb[i].type=="checkbox"&&cb[i].checked)
count++;
if(count>5)return false;//大于5的话不让选
}
</script>
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="0" border="1">
<TR>
<TD><asp:datagrid id="DataGrid1" runat="server" Width="280px" AutoGenerateColumns="False" GridLines="Horizontal"
CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#E7E7FF">
<SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
<FooterStyle ForeColor="#4A3C8C" BackColor="#B5C7DE"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<input onclick='return doSelect();' type=checkbox>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox id="chkExportNO" runat="server"></asp:CheckBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="LastName" HeaderText="LastName"></asp:BoundColumn>
<asp:BoundColumn DataField="FirstName" HeaderText="FirstName"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="City">
<ItemTemplate>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.City") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.City") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" ForeColor="#4A3C8C" BackColor="#E7E7FF" Mode="NumericPages"></PagerStyle>
</asp:datagrid></TD>
</TR>
<TR>
<TD><asp:button id="Button1" runat="server" Text="全选"></asp:button><asp:button id="Button2" runat="server" Text="取得选择的项"></asp:button></TD>
</TR>
<TR>
<TD><asp:label id="Msg" runat="server"></asp:label></TD>
</TR>
</TABLE>
</FONT>
</form>
</body>
</HTML>Top
6 楼boylzm(asdf)回复于 2006-03-08 05:36:50 得分 0
好了。哥们,我弄好了。
现在还有个问题就是我想通过点了几个checkbox就把那几天记录的ID存到一个字符里。用你的代码你看怎么实现?Top
7 楼astra1(Hyperion)回复于 2006-03-08 16:30:32 得分 0
不太明白"存到一个字符"里是什么意思,在JS存还是在后台存
存到JS里,改一下那个方法就行
function doSelect()
{
var cb=DataGrid1.getElementsByTagName("input");
var count=0;
var buf="";//存ID用
for(var i=0;i<cb.length;i++)
if(cb[i].type=="checkbox"&&cb[i].checked)
{count++;buf+=(buf?",":"")+cb[i].value;}
if(count>5)return false;//大于5的话不让选
alert(buf);
}
如果后台要这个选择列表,直接用Request.Form.Get("cb")就可以Top
8 楼boylzm(asdf)回复于 2006-03-08 19:10:16 得分 0
哥们。我的问题就是想把,点checkbox那条记录的id用穿到别的页面,你过程给我的方法点完了出现一个对话框,里面是on,好象buf没有付值啊Top
9 楼boylzm(asdf)回复于 2006-03-08 19:33:47 得分 0
我的目的就是想在一个页面里有一个按钮和带checkbox的datagrid
一是要控制只能选5个checkbox
二是当点按钮的时候把选中的checbox那条记录的ID,做为参数传到另一个页面里,Top
10 楼astra1(Hyperion)回复于 2006-03-08 19:34:38 得分 0
显示ON?你的checkbox没有value属性?
最起码要把你的ID放在checkbox的value里啊,否则怎么取
<input type=checkbox value="记录的ID">Top
11 楼boylzm(asdf)回复于 2006-03-08 19:41:49 得分 0
他的value可以绑定数据么?用这个方法行么?
<input type=checkbox value=<%#DataBinder.Eval(Container.DataItem,"EmployeeID")%>>
Top
12 楼boylzm(asdf)回复于 2006-03-08 19:48:20 得分 0
哦。好了。显示出来了。但我想把buf这个值当参数,点Button的时候把他显示在Label里,这个该怎么做,您好人做到底把,谢谢Top
13 楼astra1(Hyperion)回复于 2006-03-08 19:56:00 得分 0
你的点button是指postback吧
建议你再改一下checkbox,加个name
<input type=checkbox name=cb value=<%#DataBinder.Eval(Container.DataItem,"EmployeeID")%>>
提交后
Label.Text=Request.Form.Get("cb");Top
14 楼boylzm(asdf)回复于 2006-03-08 20:05:38 得分 0
恩。好了。非常感谢,接分把。我又要换ID了。高人,我真希望你能给我流个QQ!Top
15 楼astra1(Hyperion)回复于 2006-03-08 20:15:57 得分 0
都是小事
看短消息Top
16 楼bbbbcccc()回复于 2006-03-09 11:33:52 得分 0
http://valenhua.go3.icpcn.com/Top
17 楼dfkjewyoldfjkleoe()回复于 2006-03-09 22:18:17 得分 0
www.source520.com 免费免注册80G源码书籍下载Top
相关问题
- 怎么在Datagrid里添加Checkbox(求救!!)
- 怎样在Datagrid中添加checkbox列,并取得Datagrid里的checkbox返回值?
- 请问在(winfrom)里,怎么把checkBox添加到dataGrid行里!
- 百分求助: datagrid 里怎么添加checkbox 到第一列,
- DataGrid和table里如何添加CheckBox,Dropdownlist等控件!
- 在DataGrid如何添加一列checkbox
- 我在DataGrid的模板列里面添加了checkbox?怎样才能获得这样checkbox的引用啊?
- 请教:如何在 datagrid中添加checkbox控件?
- DataGrid中添加一列(CheckBox列, 可写) 如何设置DataGridTableStyle?
- 为DataGrid添加CheckBox控件,并实现“全选”功能




