2015-11-02 3 views
1

Интересно, в чем разница между этим двумя способами вызывающего постбэка в моем пользовательском элементе управления сервера:События в ASP Control NET пользовательского сервера

Page.ClientScript.GetPostBackEventReference(new PostBackOptions (this)) 

или вручную

__doPostBack('MyControl1', '') 

, какой из этих двух решений лучше предпочесть и почему?

ответ

1

Я считаю, что в качестве общего правила лучше избегать идентификаторов жесткого кодирования в JavaScript. Я также обнаружил, что лучше позволить ASP генерировать вещи для вас, где это возможно, ASP получает то, что ожидает ASP.

Если вы позволяете ASP генерировать ваш __doPostback для вас, вы знаете, что ASP знает, какой контроль вы говорите. Вы получите правильный eventtarget и eventargument для рассматриваемого элемента управления, когда используете ClientScript.GetPostbackEventReference. Даже если вы переместите его в разметке или иным образом сделаете что-то, чтобы изменить свой клиентский ASP, ASP все еще знает, о чем вы говорите, потому что он генерирует JavaScript.

Предоставлено, вы могли бы избежать этой конкретной ловушки с хорошим местом <% = MyControl1.ClientID%>, но я думаю, что держать его в фокусе чище.

Я попытался найти статью или блог, говоря об этом, чтобы поддержать меня, чтобы это было не строго мнение, но большинство из того, что я нашел, было инструктировано о том, КАК использовать его, а не о том, почему вы должны использовать Это.

Смежные вопросы