Сценарий:
У меня есть веб-страница ASP.Net, которую я намереваюсь использовать, чтобы позволить пользователю (не реальным пользователям, а в основном менеджеру контента) вставлять и редактировать записи в таблице с помощью FormView. Этот FormView находится внутри UpdatePanel, так как я также использую каскадные выпадающие списки, чтобы позволить пользователю выбрать некоторые значения.
Теперь этот FormView также содержит 4 элемента управления FileUpload, и, как вы, возможно, знаете, эти элементы управления загрузкой файлов требуют полной обратной передачи, поскольку большинство браузеров не позволяют Javascript обращаться к диску. Таким образом, эта проблема была бы решена с помощью чего-то вроде:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="InsertButton" />
<asp:PostBackTrigger ControlID="UpdateButton" />
</Triggers>
<ContentTemplate>....</ContentTemplate>
</asp:UpdatePanel>
Редактировать: Забыл добавить, что загрузка файла происходит в событиях OnUpdating
и OnInserting
SqlDataSource.
Проблема:
Поскольку InsertButton
и UpdateButton
находятся внутри Formview, я не могу напрямую получить доступ к их идентификаторам через разметку. И MSDN говорит , что:
Программно добавляется
PostBackTrigger управления не является
поддерживается.
Пожалуйста, предложите какое-нибудь решение, чтобы сделать эту работу. Любое понимание по этому вопросу высоко ценится. Спасибо.
P.S. Для меня работоспособным решением было установить PostBackTrigger UpdatePanel как весь сам FormView:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="FormView1" />
</Triggers>
<ContentTemplate>....</ContentTemplate>
</asp:UpdatePanel>
Но теперь из-за небольшого изменения требований это решение (если вы назовете его решением) неприемлемо.