问题:
当页面回传一次后,生成的<span>值就没有了,value也就找不到了啊,请问有什么办法解决这个问题?
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
//分别为text值、value值
listTest.Items.Add(new ListItem(dr["Title"].ToString(), dr["ID"].ToString()));
}
//为ListItem对象添加alt属性,值保存value值
foreach (ListItem li in listTest.Items)
{
li.Attributes.Add("alt", li.Value);
}
}
现在,生成的html代码如下:
<table id="Table1" border="0">
<tr>
<td>
<span alt="400"><input id="listTest_0" type="checkbox" name="listTest$0" />
<label for="listTest_0">基于jQuery的一个震动效果</label></span>
</td>
</tr>
<tr>
<td><span alt="398"><input id="listTest_1" type="checkbox" name="listTest$1" />
<label for="listTest_1">使用css的overflow属性改变缩略图大小</label></span>
</td>
</tr>
</table>从上边可以看出,多了一个span标签,里边alt的值即为我们需要的value值。使用下边的jQuery代码即可获得:
$(document).ready(function() {
$("#btnShow").click(function() {
var valuelist = ""; //保存checkbox选中值
//遍历name以listTest开头的checkbox
$("input[name^='listTest']").each(function() {
if (this.checked) {
//$(this):当前checkbox对象;
//$(this).parent("span"):checkbox父级span对象
valuelist += $(this).parent("span").attr("alt") + ",";
}
});
if (valuelist.length > 0) {
//得到选中的checkbox值序列,结果为400,398
valuelist = valuelist.substring(0, valuelist.length - 1);
}
});
});
问题:
当页面回传一次后,生成的<span>值就没有了,value也就找不到了啊,请问有什么办法解决这个问题?
解决方案 »
- jquery的一个异步问题
- gridview没有读取数据,如何默认三行
- 自动属性不好吗?
- vs2005开发web service 报错! 操作系统2008
- asp和asp.net做的sql2000管理平台
- <input id="Text1" name="text1" type="text" style="width: 330px" />的值的问题?
- 遇到一个特奇怪的问题,请各位老大帮下忙
- 新手咨询gridview绑定数据后后台获得字段值的问题
- 高难度的问题,各位请进
- 怎么让一个DataSet在pageload之前就被填充(Fill)?
- 怎样写一个bat文件,删除D盘下一个月之前.dmp文件
- repeater嵌套子repeater的循环绑定
(2)自己将alt写入viewstate
(1)DataList本身不支持除form控件外的值写入ViewState。(这个只能通过测试来检查了)
(2)DataList的ViewState没有启用
如果在启用ViewState之后,还是丢失了Alt值。你就只能换一种方法保存Alt到客户端。我之前提了两种:
(1)foreach (ListItem li in listTest.Items)
{
li.Attributes.Add("alt", li.Value);
}
把这行代码改为:
int i = 0;
foreach (ListItem li in listTest.Items)
{
Response.Write(string.Format("<input type='hidden' id='{0}' class='alt' name='{0}' value='{1}' />", "alt_"+i, li.Value));
i++;
}
也就是说将Alt值保存到多个hidden里,下次,jquery直接找$('.alt')即可找到全部的alt值了。
(2)将多个alt值连成一个字符串保存到一个hidden里。再用jquery去分解这个hidden从而得到你想要的值。