如何在单击按钮时检查gridview列中复选框的状态
T在gridview中使用了checkbox列。 单击链接按钮时,应检查gridview中的复选框是否已选中。 如果未选中任何复选框,则应显示警告(“在一个复选框中检查”复选框)。
您必须向页面添加一些自定义Javascript才能显示客户端警报。 这是我编写的一个方法,它使用名为“GridView1”的GridView(如果您只是将控件拖到ASPX页面上,这应该是默认名称):
您可以看到它为GridView
控件设置了一个变量,然后迭代遍历for
循环中的所有子节点。 如果子项是checkbox
并且已checked
它,则我们将valid
变量设置为true。 如果我们到达迭代结束并且没有找到已检查的复选框,则valid
保持为false并且我们执行警报。
要将它链接到ASPX页面上的GridView
,首先将按钮列设置为TemplateField
并使用客户端代码包围LinkButton
。 如果您已使用设计器设置列,则可以使用列编辑器中的“将此字段转换为TemplateField”链接)。 以下是您最终得到的来源示例:
// ...your remaining columns...
使用TemplateField
可以添加我们喜欢的任何客户端代码。 这里我们添加一个span
并使用onclick
来调用我们的ClientCheck
方法。
如果您不关心警报,可以使用在服务器端执行的CustomValidator
控件来实现您的目标。
我希望这有帮助。
我找到了答案。 和它的工作……
function checkBoxselectedornot(){
var frm=document.forms['aspnetForm']; var flag=false; for(var i=0;i
和girdview代码是......
并且有一个链接按钮....
我在网格视图中使用了复选框,但你不会在gridview中的列周围进行for循环并检查状态吗? Myabe添加一个计数,如果为0,则提醒。
var grid = document.getElementById("gridId"); //Retrieve the grid var inputs = grid.getElementsByTagName("input"); //Retrieve all the input elements from the grid var isValid = false; for (var i=0; i < inputs.length; i += 1) { //Iterate over every input element retrieved if (inputs[i].type === "checkbox") { //If the current element's type is checkbox, then it is wat we need if(inputs[i].checked === true) { //If the current checkbox is true, then atleast one checkbox is ticked, so break the loop isValid = true; break; } } } if(!isValid) { alert('Check at least one checkbox'); }