【问题标题】:set all check boxes inside page to false将页面内的所有复选框设置为 false
【发布时间】:2015-06-03 10:42:46
【问题描述】:

我的表格中可以有任意数量的复选框。

<input type="checkbox" value='<%#Eval("MapID") %>' class="chk" runat="server"/>...

那么如何在后面的代码中将所有复选框设置为 false?

<asp:UpdatePanel runat="server" ID="AccesUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">

        <ContentTemplate>

            <asp:ListView ID="lvCurrentMaps" runat="server"  >
            <LayoutTemplate>


                <table cellpadding="0" cellspacing="0" border="0" class="display rndCorner2" id="example" width="100%">
                 <thead>
                    <tr id="Tr1" runat="server" class="itemTableHeader">
                        <td>
                        <asp:Label runat="server" ID="Label1" Text="Select" />
                        </td>
                        <td id="Td1" runat="server">
                            <asp:Label runat="server" ID="lblMapID" Text="Map ID" />
                        </td>
                    </tr>
            </thead>
            <tbody>
                    <tr id="itemPlaceholder" runat="server">
                    </tr>
               </tbody>
                </table>


            </LayoutTemplate>
            <ItemTemplate>
                <tr id="Tr2" runat="server" class="itemTableData">
                    <td id="Td6" runat="server"  class="chkbox">
                        <input type="checkbox" value='<%#Eval("MapID") %>' class="chk" runat="server"/>
                    </td>
                    <td id="Td1" runat="server" onclick='<%#"doPostBackForView("+Eval("MapID")+")" %>' style="cursor:pointer !important">
                        <asp:Label runat="server" ID="lblIDMapValue" Text= '<%#Eval("MapID") %>' />
                    </td>
                </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <tr id="Tr2" runat="server" class="altItemTableData">
                    <td id="Td6" runat="server"  class="chkbox">
                        <input id="Checkbox" type="checkbox" value='<%#Eval("MapID") %>' class="chk" runat="server"/>
                    </td>
                    <td id="Td1" runat="server" onclick='<%#"doPostBackForView("+Eval("MapID")+")" %>' style="cursor:pointer !important">
                        <asp:Label runat="server" ID="lblIDMapValue" Text= '<%#Eval("MapID") %>' />
                    </td>
                    <td id="Td8" runat="server" onclick='<%#"doPostBackForView("+Eval("MapID")+")" %>' style="cursor:pointer !important">
                        <asp:Label runat="server" ID="lblMapNameValue" Text= '<%#Eval("MapName") %>' />
                    </td>
                    <td id="Td9" runat="server" onclick='<%#"doPostBackForView("+Eval("MapID")+")" %>' style="cursor:pointer !important">
                        <asp:Label runat="server" ID="lblMapDescValue" Text= '<%#Eval("MapDesc") %>' />
                    </td>
                </tr>
            </AlternatingItemTemplate>

        </asp:ListView>                   
        </ContentTemplate>
        </asp:UpdatePanel>

我正在尝试类似:

foreach(var li in lvCurrentMaps.Items)
        {
            li.DataItem = false;
        }

        AccesUpdatePanel.Update();

有什么想法吗? 可能通过 ScriptManager?

【问题讨论】:

  • @John,您是要在 Javascript 或后端更新 CheckBox 状态吗?
  • 我的脚本中没有,我需要吗? lvCurrentMaps 是 listView 的名称....正在尝试从后端更新
  • 对不起!我以为你在尝试 javascript

标签: c# html asp.net checkbox


【解决方案1】:

试试这个

<input type="checkbox" Checked='<%# Eval("MapID") %> class="chk" runat="server"/>

如果数据列 MapID 的值不是布尔值,试试这个

创建一个方法

public bool CheckMapID(object mapID)
{
  if (mapID == null)
  {
     return false;
  }
  return true;
}

并用这个替换 HTML/ASPX 代码

<input type="checkbox" Checked=<%# CheckMapID(Eval("MapID")) %> class="chk" runat="server"/>

【讨论】:

  • 这会抛出 Specified cast is not valid.
  • MapID 列中的值是什么?不是布尔值吗?
【解决方案2】:

jquery解决方案:

<script type="text/javascript">
$(document).ready(function(){
    $('.chk').prop('checked', false);
});
</script>

【讨论】:

  • 是否可以将此添加到从后面的代码运行的脚本中?
  • 我已经编辑了脚本。将全部代码放入您的源代码中。它会在客户端加载文档后立即运行(但不是从后端)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 2017-03-19
  • 2018-12-13
  • 2021-10-14
  • 2012-11-07
  • 2012-01-09
相关资源
最近更新 更多