我在gridview中使用了复选框列。单击链接按钮时,应检查 gridview 中的复选框是否已选中。如果没有选中任何复选框,则应显示警报(“至少选中一个复选框”)。
您必须向页面添加一些自定义 Javascript,以便显示客户端警报。下面是我编写的一个与名为“GridView1”的 GridView 一起使用的方法(如果您刚刚将控件拖到 ASPX 页面上,这应该是默认名称):
<script type="text/javascript">
function ClientCheck() {
var valid = false;
var gv = document.getElementById("GridView1");
for (var i = 0; i < gv.all.length; i++) {
var node = gv.all[i];
if (node != null && node.type == "checkbox" && node.checked) {
valid = true;
break;
}
}
if (!valid) {
alert("Invalid. Please select a checkbox to continue.");
}
return valid;
}
</script>
你可以看到它设置了一个变量GridView
控件开始,然后迭代所有子控件for
环形。如果孩子是一个checkbox
它是checked
,然后我们设置valid
变量为真。如果我们到达迭代结束并且没有找到选中的复选框,那么valid
仍然为假,我们执行警报。
将此链接到您的GridView
在您的 ASPX 页面上,首先将按钮列设为TemplateField
并围绕LinkButton
与您的客户端代码。如果您已使用设计器来设置列,则可以使用列编辑器中的“将此字段转换为 TemplateField”链接。以下是您最终得到的来源示例:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
<Columns>
<asp:TemplateField HeaderText="Button Field" ShowHeader="False">
<ItemTemplate>
<span onclick="return ClientCheck();">
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="IDClick" Text='<%# Eval("YourDataSourceItem") %>'></asp:LinkButton>
</span>
</ItemTemplate>
</asp:TemplateField>
// ...your remaining columns...
使用TemplateField
让我们添加任何我们喜欢的客户端代码。这里我们添加一个span
并使用onclick
打电话给我们的ClientCheck
method.
如果您不介意该警报,您可以通过使用CustomValidator
控制,在服务器端执行。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)