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

кто-нибудь может описать мне, как найти элемент управления внутри 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;"

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


person Vaibhav Saran    schedule 29.03.2011    source источник


Ответы (3)


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

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

person SLaks    schedule 29.03.2011

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

person Shawn Steward    schedule 29.03.2011

<%= 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, но не может найти, отмечен он или нет. Требуется ли приведение типов? если да, то опишите как?

person Vaibhav Saran    schedule 31.03.2011
comment
Вы когда-нибудь получали решение, как узнать, установлен ли флажок или нет? - person Darren; 01.06.2018