2

JavaScriptを使用してASP DetailsView内でコントロールを見つける方法を誰か説明してもらえますか? 私の要件は、チェックボックスがオンになっているかどうかにかかわらず、ボタンのクライアントクリックに確認ボックスを表示することです。


DetailsView なしで動作するコードは次のとおりです。

<script type="text/javascript" language="javascript">
function confirmation() {
    var chkbx = document.getElementById("chkbox4PubnOrder");

    if (chkbx.checked == false) {
        var answer = confirm('Are you sure to add a feature which be published');
        if (answer) {
            return true;
        }
        else {
            return false;
        }
    }
    else {
        return true;
    }
}
</script>

chkbox4PubnOrderは asp チェックボックスです詳細ビューの場合、上記のコードはチェックボックスを見つけることができず、
この asp ボタンの onclientclick イベントを発生させます。

OnClientClick="if(!confirmation()) return false;"

助けてください...

4

3 に答える 3

0

ASP.Netは、サーバー側のコントロール用に独自のIDを生成します。

<%= chkbox4PubnOrder.ClientID %>この生成されたIDを取得するために書き込むことができます。

于 2011-03-29T13:19:42.797 に答える
0

<%= chkbox4PubnOrder.ClientID %>また、コントロールはASP DetailView内にあるため、機能しません。GridViewまたはdatagrid内のコントロールを検索するのと同じ方法を試しました。それも運が悪かった。

私は以下のようにコントロールを取得しようとしました

<script type="text/javascript" language="javascript">
function confirmation() {

    // first finding asp detailsview
    var detailsview = document.getElementById('<%= DetailsView1.ClientID %>');
    //then finding control inside the detailsview
    var chekbx = detailsview.getElementByTagName("chkbox4PubnOrder");

    if (chkbx.checked == false) {
        return confirm('Are you sure to add a feature which be published');
    }
    else {
        return true;
    }
}
</script>

このコードはchkbxを表示しませんnull。つまり、detailsview内のチェックボックスは検出されますが、チェックされているかどうかは検出されませんでした。型キャストは必要ですか?はいの場合、その方法を説明してください。

于 2011-03-31T05:26:43.263 に答える
0

または、ページがブラウザーに表示された後、いつでもページのソースを表示して、コントロールに与えられた ID を確認できます。通常、ページ名と、ユーザー コントロールなどの追加の「レイヤー」から構築されます。

于 2011-03-29T14:20:33.810 に答える