как кодировать содержимое функции __doPostBack () - PullRequest
0 голосов
/ 14 декабря 2010

Например:

href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$PlaceHolderMain$g_188da349_7fe9_42f0_9a95_40cee6cd37a4$ctl00$ctl05$lbtnApplicationName','')">

Что это за вызов?

1 Ответ

1 голос
/ 22 марта 2011

Это часть HTML-кода, отправляемого в браузер для кнопки ссылки на стороне сервера:

<asp:LinkButton id="lbtnApplicationName" runat="server" OnClick="SomeFuncHere" Text="Get Application Name" />

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

В общем случае ASP.NET фреймворк создает окончательный идентификатор элемента на основе его прямого идентификатора и связывает идентификатор его родительских элементов управления, включая заполнители содержимого.
Для элементов формы их name строится аналогичным образом, за исключением того, что вместо _ он использует $ для «цепочки» идентификаторов родителей.

Почему? Чтобы избежать возможности иметь более одного элемента с одинаковым идентификатором в одном и том же документе HTML. (Или два элемента формы с одинаковым именем, когда они находятся в разных элементах управления)

Теперь этот последний идентификатор используется, чтобы сообщить серверу, какой элемент управления вызвал PostBack - это выполняется с помощью функции JavaScript, автоматически записываемой на страницу средой, которая получает идентификатор элемента в качестве аргумента.

...