Когда использовать HtmlControls по сравнению с WebControls

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

5
задан Jimmy 11 September 2008 в 23:53
поделиться

3 ответа

Могло бы быть полезно думать о средствах управления HTML как об опции, когда Вы хотите больше управления меткой, которая заканчивает тем, что была испущена Вашей страницей. Больше управления в том смысле, что Вы хотите, чтобы КАЖДЫЙ браузер видел точно ту же разметку.

Если Вы создаете Систему. Сеть. UI.HtmlControls как:

<input id='btnCancel' runat='server' type='button' value='Cancel' />

Затем Вы знаете, какой код будет испускаемым. Даже при том, что большую часть времени:

<asp:Button id='btnCancel' runat='server' Text='Cancel' />

закончит тем, что был той же разметкой. Та же разметка не всегда испускается для всего WebControls. Многие WebControls создали в адаптивном рендеринге, который представит другой HTML на основе агента пользователя браузера. Как пример DataGrid будет выглядеть очень отличающимся в мобильном браузере, чем он будет в настольном браузере.

Используя WebControls в противоположность HtmlControls также позволяет Вам использовать в своих интересах ASP.NET v2.0 ControlAdapters, который я верю только работам с WebControls, это позволит Вам программную конфигурацию управляемое управление разметкой, которая испускается.

Это могло бы казаться более ценным, когда Вы полагаете, что определенные мобильные браузеры или WebTVs собираются хотеть WML или совершенно другие наборы разметок.

5
ответ дан 14 December 2019 в 01:21
поделиться

хорошо... я не использовал бы управление HTML, если Вы ничего не должны делать на нем на сервере. я сделал бы

<input id='btnCancel' type='button' value='Cancel' />

пластина.

1
ответ дан 14 December 2019 в 01:21
поделиться

По моему опыту, существует очень мало различия. Как Darren сказал, если Вам не нужна функциональность серверной стороны, средства управления HTML являются, вероятно, более низким влиянием.

И не забывайте, можно соединить болтом функциональность серверной стороны почти на любое управление HTML только путем добавления runat = директива "сервера" и идентификатор к ней.

3
ответ дан 14 December 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: