我有一个动态GridView
的学生,它依赖于数据库信息的行数
我希望在按下按钮后,我会在阵列/列表中获得仅检查PersonID
的列表。
我不知道如何编写这个JavaScript / jQuery函数。
CheckBox:
<asp:CheckBox CssClass="chk" ID="Checkbox" runat="server" Text='<%# Bind("PersonID") %>'></asp:CheckBox>
按钮:
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="myClosure1()" />
JavaScript:
<script type="text/javascript">
function myClosure1() {
$('.chk').each(function () {
var chkbox = $(this).children('input').get(0);
if (chkbox.checked) {
}
});
}
</script>
我不确定它是否进入$('.chk').each
编辑示例我上传的图片会发布数字1,2,4因为我检查了
答案 0 :(得分:1)
对于这种情况,我将添加另一个隐藏的归档控件。然后渲染的输出将是这样的 -
<span class="chk">
<input id="GridView1_Checkbox_0" type="checkbox" name="GridView1$ctl02$Checkbox">
<label for="GridView1_Checkbox_0">1</label>
</span>
<input type="hidden" name="GridView1$ctl02$HiddenField1"
id="GridView1_HiddenField1_0" value="1">
ASP.NET复选框控件在span标记内呈现,因此您需要在jQuery中以.chk input
的形式访问它们。
<button type="button" id="btnAll">Select All</button>
<asp:GridView ID="GridView1"
AutoGenerateColumns="False"
runat="server" DataKeyNames="PersonID">
<Columns>
<asp:BoundField DataField="PersonID" HeaderText="PersonID" />
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox CssClass="chk" ID="Checkbox"
runat="server" Text='<%# Bind("PersonID") %>'></asp:CheckBox>
<asp:HiddenField runat="server" ID="HiddenField1"
Value='<%# Bind("PersonID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div id="result"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript">
var personIDs;
$("#btnAll").click(function () {
personIDs = []; // Clear data
$(".chk input:checked").each(function () {
// 'this' is a checkbox, so we need to go up to parent span tag.
personIDs.push($(this).parent().next('input[type=hidden]').val());
});
$("#result").text(personIDs);
});
</script>
答案 1 :(得分:0)
// Each row of the table
$("#table tr").each(function(){
// get checkbox id and look for CheckStatus.
});