У меня возникают проблемы с выяснением того, что ожидает asp.net «EventName» в атрибуте EventName AsyncPostBackTrigger. (Триггер, на который я смотрю, - это событие перетаскивания на веб-части asp.net, поэтому, если кто-нибудь знает ответ, основанный на этом, отлично.)
Я читал в другом месте, что __EVENTTARGET должен дать мне идентификатор элемента управления, который вызвал событие, а __EVENTARGUMENT должен дать мне имя события.
Чтобы попытаться выяснить, каким должен быть триггер, я добавил код в мою загрузку страницы при обратной передаче:
Me.txtEventTarget.Value = Me.Page.Request.Params("__EVENTTARGET")
Me.txtEventArg.Value = Me.Page.Request.Params("__EVENTARGUMENT")
И когда я запускаю обратную передачу, я получаю следующий вывод:
txtEventTarget:
ctl00 $ cphDataEntry $ Zone2
txtEventArg:
Drag: WebPart_gwpucMyFiles: 0
Похоже, что «аргументы события» на самом деле составной объект, состоящий из трех частей: имя события, то, что выглядит как часть идентификатора элемента управления, инициирующего событие, и значение, связанное с событием.
Но что, черт возьми, ASP.Net делает с идентификаторами? Я знаю, что это раздражает вещами с подчеркиванием и знаком доллара, но почему он использует другой формат для этих двух переменных? Разве они не должны содержать подчеркивания?
Когда я просматриваю HTML-источник моей страницы, идентификатор элемента управления выглядит примерно так:
"ctl00_cphDataEntry_WebPartManager1_gwpucMyFiles", за исключением того, что это никогда не просто этот идентификатор; ID дочерних элементов управления прикреплены.
Во всяком случае, когда я пытаюсь это сделать, это не работает:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ctl00_cphDataEntry_WebPartManager1_gwpucMyFiles" EventName="Drag"/>
</Triggers>
Итак, кто-нибудь знает, что я должен поместить в AsynchronousPostbackTrigger? Является ли EventName просто "Drag"? Если да, нужен ли мне полный идентификатор моего элемента управления для атрибута «ControlID»? Если так, как я могу определить полный идентификатор? Должно ли оно быть в формате знака доллара или подчеркивания?