asp.net的checkboxlist后台绑定DataTextField和DataValueField
前台页面发现情况有:
(1)checkbox是单独的,里面什么信息都没有,在其紧接有一个label,包含text值。
<input id="dlWater_0" type="checkbox" name="dlWater$0" /><label for="dlWater_0">PH</label>
(2)没有找到value值
从后台获取value和text值是没有问题的,但是考虑到前台的获取,比如:选中checkbox,显示选中的值,取消选中时,把显示的值从选中的列表中去掉,同时还要选中时要保存value值(通常是用hidden隐藏的),取消选中时去掉value和text值,
这样就要考虑从前台获取text和value值了。
js的还没有考虑过,jquery的倒是试过
(1)jquery获取text值:
从情况1中jquery这样实现
$("input[type='checkbox']").click(function(){
var jcxmname=$(this).next().text();//获取label的值
}
(2)jquery获取value值:
从情况2可以看到,从后来绑定后value没有显示到前台(搞不清楚),前台的页面上没有value值,jquery是不能获取的,所以需要把绑定value值给显示出来,找了一下发现可以用其他的方法把value值显示到前台
foreach (ListItem item in CheckBoxList1.Items)
{
item.Attributes.Add("val", item.Value);
}
在绑定值过后就把value值同时再绑定下,这样绑定后前台就显示出value值了(后来发现刷新页面value值是会丢失的,怎么办,你懂的!)
前台代码如下:
<span val="1001"><input id="dlWater_0" type="checkbox" name="dlWater$0" /><label for="dlWater_0">PH</label></span>
发现最外面多个span,并且把value值以val的形式给显示出来了,这样就好办多了。
又查过资料发现jquery可以这样取值
$("input[type='checkbox']").click(function(){
var lvalue=$(this).parent('span').attr("val");//获取value值
var lname=$(this).next().text();//获取text值
}
这样就能够在前台获取到value值了。