我有一个要处理客户端的 ASP RadioButtonList。
该网页包含一个带有单选按钮组和关联 GridView 的表单。当用户选择其中一个单选按钮时,我想在 GridView 上隐藏或显示行。(必须隐藏行,而不是通过回发过滤掉数据集,因为在用户提交表单时会进行处理。)
感谢 StOf 和其他网站,这就是我目前所拥有的。
我的客户端脚本因无法识别而出错Value
(“无法读取未定义的属性‘值’。”)
function update_grid(rbList) {
var parameter = rbList.SelectedItem.Value;
var grd = $("#my_gridview");
var rows = $("#my_gridview tr:gt(0)");
switch (parameter) {
case "All":
{
rows.show().all;
}
case "Hide":
{
var rowToShow = rows.find("td:eq(0)").filter(chk_ischecked == false);
rows.show().not(rowToShow).hide();
}
case "Show":
{
var rowToShow = rows.find("td:eq(0)").filter(chk_ischecked == true);
rows.show().not(rowToShow).hide();
}
}
}
我在设计时的 RadioButtonList:
<asp:RadioButtonList ID="RadioButtonList1" runat="server" onclick="javascript:update_grid( this );>
<asp:ListItem Selected="True" Value="All">Show All</asp:ListItem>
<asp:ListItem Value="Hide">Hide Checked</asp:ListItem>
<asp:ListItem Value="Show">Show Only Checked</asp:ListItem>
</asp:RadioButtonList>
以及生成的 HTML:
<table id="RadioButtonList1" onclick="update_grid(this);">
<tr>
<td><input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="All" checked="checked" /><label for="RadioButtonList1_0">Show All</label></td>
</tr><tr>
<td><input id="RadioButtonList1_1" type="radio" name="RadioButtonList1" value="Hide" /><label for="RadioButtonList1_1">Show Unchecked</label></td>
</tr><tr>
<td><input id="RadioButtonList1_2" type="radio" name="RadioButtonList1" value="Show" /><label for="RadioButtonList1_2">Show Only Checked</label></td>
</tr>
</table>
我一直在尝试找到某种方法来获取选定按钮的值而不是遍历列表,但到目前为止还没有运气。我还尝试了一种 JQuery 方法,它可以在页面加载时运行,但我无法通过选择单选按钮来触发断点。(我确信有更好的 JQuery 方法。):
$(document).ready(function () {
$('#RadioButtonList1_All').on('change', function () {
$("#tbl tr").show();
});
$('#RadioButtonList1_Hide').on('change', function () {
var grd = $("#my_gridview");
var rows = $("#my_gridview tr:gt(0)");
var rowToShow = rows.find("td:eq(0)").filter(chk_ischecked == false);
rows.show().not(rowToShow).hide();
});
$('#RadioButtonList1_Show').on('change', function () {
var grd = $("#my_gridview");
var rows = $("#my_gridview tr:gt(0)");
var rowToShow = rows.find("td:eq(0)").filter(chk_ischecked == true);
rows.show().not(rowToShow).hide();
});
});