【问题标题】:listview if checkbox is checked and dropdown selectedvalue = x then alert + unchecklistview 如果复选框被选中并且下拉 selectedvalue = x 然后警报 + 取消选中
【发布时间】:2013-09-23 13:11:56
【问题描述】:

在 aspx 页面中,我试图验证用户何时选中复选框,如果同一行的选择值具有某个值(默认值)以触发警报消息并取消选中复选框。我想在 javascript 中实现这一点以避免回发,但如果可能的话没有 jquery。

<asp:ListView ID="lstView_retrievedIPPhones" runat="server" OnDataBound="lstView_retrievedIPPhones_DataBound" OnItemDataBound="lstView_retrievedIPPhones_ItemDataBound">
        <LayoutTemplate>
                    <table id="tbl1" runat="server" class="bordered">
                        <tr id="tr1" runat="server">
                            <th id="th1" runat="server"><asp:CheckBox ID="chkbox_checkAllRows" runat="server" OnClick="javascript:ToogleCheckAll(this.id)"/></th>
                            <th id="th9" runat="server">Sites</th>                                
                            <th id="th8" runat="server">Result</th>
                        </tr>
                        <tr id="ItemPlaceholder" runat="server">  
                        </tr>
                    </table>
                </LayoutTemplate>
                <ItemTemplate>
                    <tr>
                        <td><asp:CheckBox ID="chkbox_toConfigure" runat="server" OnClick="javascript:btnclick()" /></td>
                        <td>
                            <asp:DropDownList ID="dpdown_Site" runat="server"></asp:DropDownList>
                        </td>
                        <td><asp:Image ID="imgResultLastOp" tooltip= "" runat="server" /></td>
                    </tr>
                </ItemTemplate>

        <EmptyDataTemplate></EmptyDataTemplate>
    </asp:ListView>

在上面的代码中,当点击 chkbox_toConfigure 时,我想验证 DropDownList selectedvalue 不是默认值。

非常感谢您的帮助。

【问题讨论】:

    标签: javascript asp.net checkbox


    【解决方案1】:

    如果您知道下拉菜单的默认项的值(例如这里的 -1),那么您可以检查复选框的单击并提醒用户从下拉菜单中选择另一个项目:

    在结束 ItemTemplate 标记之前添加此代码:&lt;/ItemTemplate&gt;

    <script>
    function CheckSelectedItem() {
        var ddl = document.getElementById("<%# Container.FindControl("dpdown_Site").ClientID %>");
        var ddlValue = ddl.options[ddl.selectedIndex].value;
        if(ddlValue == "-1")
            alert("Select another item!");
    }
    
    document.getElementById("<%# Container.FindControl("chkbox_toConfigure").ClientID %>").onclick = function() {
        CheckSelectedItem();
        return false;
    }
    </script>
    

    Some help

    【讨论】:

    • 您好 Umair,感谢您的回答。非常感激。将代码插入我的 时,出现以下错误:“当前上下文中不存在名称 'dpdown_Site'”
    • 抱歉,您可以在中继器中执行此操作,在这里您可以使用 和 我已经编辑了答案
    • 您好,非常感谢您的回答!它实际上工作正常。我可以滥用并问如果我想把它放在我的全局 javascript 部分(在我的页面顶部)吗?我在复选框单击时执行以下功能并尝试了打击但没有成功:function CheckSelectedItem(Chkid) { var ddl = document.getElementById("&lt;%# lstView_retrievedIPPhones.FindControl("dpdown_Site").ClientID %&gt;"); var ddlValue = ddl.options[ddl.selectedIndex].value; if (ddlValue == "&lt;&gt;") alert("Please select a site for the IP Phone"); }
    • 您必须在此处仅创建 1 个函数,然后在 onclick 中您必须为复选框和下拉菜单传递 ID,然后使用参数中的这些 ID 并将其删除:
    • 嗨,对不起,我无法让它工作:javascript:ToogleCheckAll(this.id, ) 给我一个错误:服务器标签格式不正确。
    【解决方案2】:

    我最终做了以下代码:

    <asp:CheckBox ID="chkbox_toConfigure" runat="server" OnClick='<%# "javascript:CheckSelectedItem(this.id," + ((ListViewDataItem)Container).FindControl("dpdown_Site").ClientID + ");" %>'/>
    

    进入我的 javascript 部分:

        function CheckSelectedItem(checkboxID, dropdown) {
        var checkbox = document.getElementById(checkboxID);
        var dropdownValue = dropdown.options[dropdown.selectedIndex].text;
        if (dropdownValue == "<>") {
            alert("Please select a valid value");
            checkbox.checked = false;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-16
      • 2015-11-30
      • 2015-07-17
      • 2012-04-10
      • 2013-05-04
      相关资源
      最近更新 更多