Как получить контроль внутри ASP DetailsView через JavaScript?

Кто-нибудь может описать мне, как найти элемент управления внутри ASP DetailsView с помощью JavaScript? Мое требование состоит в том, чтобы при нажатии на кнопку клиента отображалось поле подтверждения, если флажок установлен или нет.


Вот код, работающий без 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. В случае подробного просмотра вышеупомянутый код не может найти флажок
И я запускаю это событие onclientclick кнопки asp-

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

Пожалуйста помоги...

3 ответа

Решение

<%= chkbox4PubnOrder.ClientID %> также не работает, так как элемент управления находится внутри ASP DetailView. я пробовал так же, как мы ищем элемент управления внутри GridView или сетки данных. Это тоже не повезло.

я пытался получить контроль, как показано ниже

<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 то есть, он находит флажок внутри подробного просмотра, но не может найти, отмечен он или нет. Нужна ли доработка? если да то опишите пожалуйста как?

ASP.Net генерирует свои собственные идентификаторы для серверных элементов управления.

Ты можешь написать <%= chkbox4PubnOrder.ClientID %> чтобы получить этот сгенерированный идентификатор.

Или вы всегда можете просмотреть источник страницы после ее просмотра в браузере и посмотреть, какой идентификатор он дал элементу управления. Как правило, он состоит из имени страницы и любых дополнительных "слоев", которые вы, возможно, добавили, таких как пользовательские элементы управления и т. Д.

Другие вопросы по тегам