0

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 の選択値がデフォルト値ではないことを検証したいと考えています。

どうぞよろしくお願いいたします。

4

2 に答える 2

0

ドロップダウンのデフォルト項目の値がわかっている場合 (たとえば、ここでは -1)、チェックボックスのクリックをオンにして、ドロップダウンから別の項目を選択するようにユーザーに警告できます。

終了 ItemTemplate タグの直前に次のコードを追加します。</ItemTemplate>

<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>

手助け

于 2013-09-20T21:46:07.370 に答える
0

さて、私は次のコードを実行することになります:

<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;
    }
}
于 2013-09-23T05:11:56.107 に答える