获取RadioButtonList 值问题
<asp:RadioButtonList ID="rblbtn" runat="server" > </asp:RadioButtonList>
<asp:Button ID="btndelte" runat="server" Text="删除" OnClientClick="return test()" onclick="btndelte_Click" />
RadioButtonList 数据源 后台动态绑定
页面加载后效果。
<tr>
<td><input id="rblbtn_0" type="radio" name="rblbtn" value="新建地址" /><label for="rblbtn_0">新建地址</label></td>
</tr><tr>
<td><input id="rblbtn_1" type="radio" name="rblbtn" value="897899978" /><label for="rblbtn_1">897899978</label></td>
</tr>
前台js 操作
function test() {
var rblbtn = document.getElementById("<%=rblbtn.ClientID %>");
var rbs = rblbtn.getElementsByTagName("input");
for (var i = 0; i < rbs.length; i++) {
var str = rbs[i].value;
if (rbs[i].checked && rbs[i].value != "新建地址") {
var st= rbs[i].value;
if (window.confirm("确定删除") == true) {
return <%=udddpdate() %>;
}
else
{
return false;
}
}
}
}
调用后台的方法
public bool udddpdate()
{
string value = rblbtn.SelectedValue.ToString();
if (rblbtn.SelectedValue.ToString() != "新建地址" && value !="")
{
UpdateAddress(value);
BinDrop();
return true;
}
else
return false;
}
为什么后台udddpdate方法中value值永远是空的。 假如我不用js调用 ,直接btndelte_Click事件中也获取
不到选中项的值,也是为空,这是为什么?如果是循环
for (int i = 0; i < this.rblbtn.Items.Count; i++)
{
string value = rblbtn.Items[i].Text;
if (rblbtn.Items[i].Selected==true) //rblbtn.SelectedIndex == -1 也判断是否选中
{
}
else
{
if (value != "新建地址")
{
}
}
}
值是获取到了 ,但判断是否是选中项的时候,永远是没选中。
请问是什么问题呢,大家指点一下啊 。
[解决办法]
Refer related:
http://www.cnblogs.com/insus/archive/2013/01/14/2859079.html
http://www.cnblogs.com/insus/archive/2013/05/07/3064844.html
http://www.cnblogs.com/insus/archive/2012/09/05/2671729.html
http://www.cnblogs.com/insus/archive/2013/05/01/3052722.html
[解决办法]
http://liuxiutianxia.blog.163.com/blog/static/11687940020122454530556/
RadioButtonList 的前台是转换为表格形式的(默认)HTML了,你需要看下加载后的结构。你需要遍历表格中的radio 元素。
JS 调用的话,并不会触发后台的回传机制(这个很恶心),所以也就去不到值了。
btndelte_Click事件 这个后台获取,如果获取值失败,有可能是ispostback的问题,看下http://bbs.csdn.net/topics/390499054 这个。