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值了。