c# - Javascript 从 Asp.net GridView 取消选中复选框

标签 c# javascript asp.net dom gridview

我正在使用 javascript 来制作未经检查的 GridView 。 但每当我尝试时,我都无法不受控制。

function UncheckedItemsCheckBox(CheckboxID) {
      var checkbox = document.getElementById(CheckboxID);
      checkbox.checked = false;            
      alert(checkbox.id + " : " + checkbox.name + " : " + checkbox.checked);
}

这是输出。

---------------------------
Message from webpage
---------------------------
GridView1_ctl02_txtDoseQty : GridView1$ctl02$txtDoseQty : false
---------------------------
OK   
---------------------------

尽管“checkbox.checked”返回“false”作为显示的输出消息,但在 gridview 复选框仍然处于选中状态。

有人可以给我建议吗?

最佳答案

可能发生的情况是您的 CheckBoxID 错误,因此返回错误的元素。

在 JavaScript 中,如果该对象之前没有 checked 属性,则说 checkbox.checked = false;添加一个对象,以及提供的值。因此,如果您的 CheckBoxID 实际上是错误的,那么您的警报显示 false 也就不足为奇了;使用 getElementById 拉回的任何非空元素都将允许您向其添加选中的属性。

更具体地说,在 asp.net 中,当您创建复选框列时,如下所示

<asp:CheckBoxField Text="Hello" DataField="foo" />

它渲染 html 像这样:

<span class="aspNetDisabled">
    <input id="gv_ctl00_0" type="checkbox" name="gv$ctl02$ctl00" disabled="disabled">
    <label for="gv_ctl00_0">Hello</label>
</span>

几种可能性:

  1. 您获得的 ID 可能属于您要添加已检查属性的范围。
  2. 您正在设置要选中的复选框,但由于它已被禁用,因此它不会更新其状态 - 好吧,看起来禁用的复选框可以更新其选中的属性。希望#1 是你的问题。

开始调试的一个好地方是将你的函数更改为这个

function UncheckedItemsCheckBox(CheckboxID) {
      var checkbox = document.getElementById(CheckboxID);

      alert(checkbox.checked);  // <------- should display false, but will 
                                // display undefined if this element is 
                                // something other than a checkbox

      checkbox.checked = false;            
      alert(checkbox.id + " : " + checkbox.name + " : " + checkbox.checked);
}

关于c# - Javascript 从 Asp.net GridView 取消选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767647/

相关文章:

c# - 当鼠标悬停在行上时突出显示 DataGridView 中的行

c# - 将 DataTable 绑定(bind)到已定义列的 Datagridview

c# - ASP.Net MVC 4 PUT 请求响应 409 - 冲突

javascript - <p :commandButton> not getting scrolled along with the <p:scrollPanel>

c# - 为我的项目升级 ASP.NET 或 .NET Framework 需要等待多长时间?

c# - 是什么阻止了这个任务长时间运行?

javascript - 如何在 Phonegap 应用程序中查找内存泄漏

javascript - Jasmine 监视嵌套对象

javascript - 在没有回发的情况下从 LinkBut​​ton 调用 C# 方法(使用 PageMethod)(MasterPage 网站)

javascript - 在 JavaScript 中找不到 clientid