执行单击RadioButtonList ListItem
本文关键字:ListItem RadioButtonList 单击 执行 | 更新日期: 2023-09-27 18:27:25
我有一个RadioButtonList,它有一个javascript onclick函数,当用户点击它时会触发它。是否可以像在单个RadioButton上一样,在整个RadioButtonList或一个ListItem上执行单击?
我有一个带有隐藏复选框的GridView,我用它来知道用户是否修改了该行上的内容:
<asp:TemplateField ShowHeader="false" HeaderStyle-BackColor="White">
<ItemStyle BorderColor="White" Width="5%" />
<ItemTemplate>
<asp:CheckBox runat="server" Style="display: none" Text="" ID="chkDaPa" Checked="false" />
</ItemTemplate>
</asp:TemplateField>
在gridview ondatabound上,我在单选按钮列表上指定了一个javascript来检查隐藏的复选框,所以我知道我必须保存那一行:
rdDaPa.Attributes.Add("onclick", "$('#" + chkDaPa.ClientID + "').attr('checked', true);");
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" Width="10%" Wrap="false" />
<ItemTemplate>
<asp:RadioButtonList RepeatLayout="Flow" ID="rdDaPa" runat="server" RepeatDirection="Horizontal" SelectedValue='<%#Eval("DaPa")%>'>
<asp:ListItem Text="SI" Value="True"></asp:ListItem>
<asp:ListItem Text="NO" Value="False"></asp:ListItem>
<asp:ListItem Value="" Text="" style="display: none" />
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
如果用户手动在某行的单选按钮列表上设置一个值,它也可以正常工作。问题的出现是因为这是一个按钮,它会自动将所有单选按钮列表设置在一个值上,但在这种情况下,javascript不会被触发:
RadioButtonList rdDaPag = (RadioButtonList)riga.FindControl("rdDaPa");
rdDaPa.SelectedValue = "True";
因为没有人点击它。我看到过:http://msdn.microsoft.com/en-us/library/system.windows.forms.radiobutton.performclick%28v=vs.100%29.aspx我想这就是我需要的,但可以在ListItem而不是RadioButton上使用吗?
好的,现在我通过javascript完成所有操作,所以我可以直接选中隐藏的复选框:
function accettaTutte() {
$("#<%=gdDettaglio.ClientID%> tr:has(td)").each(function () {
var items = $(this).find("[id$='rdDaPa'] input:radio'");
for (var i = 0; i < items.length; i++) {
if (items[i].value == 'True') {
if (!(items[i].checked)) {
items[i].checked = true;
$(this).find("[id$='chkDaPa']").attr("checked", "checked");
}
break;
}
}
});
return false;
}