场景:
我有一个 ASP.Net 网页,我打算用它来让用户(不是真正的用户,而是基本上的内容管理员)使用 FormView 插入和编辑表中的记录。该 FormView 位于 UpdatePanel 内部,因为我还使用级联下拉列表来让用户选择一些值。
现在,这个 FormView 还包含 4 个 FileUpload 控件,您可能知道这些 fileupload 控件需要完整的回发,因为大多数浏览器不允许 Javascript 访问磁盘。因此,这个问题可以通过执行以下操作来解决:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="InsertButton" />
<asp:PostBackTrigger ControlID="UpdateButton" />
</Triggers>
<ContentTemplate>....</ContentTemplate>
</asp:UpdatePanel>
编辑:忘记添加文件上传发生在OnUpdating
and OnInserting
SqlDataSource 的事件。
问题:
自从InsertButton
和UpdateButton
驻留在 Formview 中,我无法通过标记直接访问它们的 ID。和MSDNsays http://msdn.microsoft.com/en-us/library/system.web.ui.postbacktrigger.postbacktrigger.aspx that:
以编程方式添加
PostBackTrigger 控件不是
支持的。
请提出一些解决方案来使这项工作有效。对此事的任何见解都将受到高度赞赏。谢谢。
P.S.-对我来说一个可行的解决方案是将 UpdatePanel 的 PostBackTrigger 设置为整个 FormView 本身:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="FormView1" />
</Triggers>
<ContentTemplate>....</ContentTemplate>
</asp:UpdatePanel>
但现在由于需求发生了一些变化,这个解决方案(如果你称之为解决方案)是不可接受的。