【发布时间】:2011-04-03 02:59:45
【问题描述】:
情景:
我有一个 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>
编辑:忘记添加文件上传发生在 SqlDataSource 的 OnUpdating 和 OnInserting 事件中。
问题:
由于InsertButton 和UpdateButton 位于Formview 中,因此我无法通过标记直接访问它们的ID。还有 MSDN says 那个:
以编程方式添加 PostBackTrigger 控件不是 支持。
请提出一些解决方案来完成这项工作。对此事的任何见解都将受到高度赞赏。谢谢。
P.S.- 对我来说可行的解决方案是将 UpdatePanel 的 PostBackTrigger 设置为整个 FormView 本身:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="FormView1" />
</Triggers>
<ContentTemplate>....</ContentTemplate>
</asp:UpdatePanel>
但是现在由于需求的一些变化,这个解决方案(如果你称之为解决方案)是不能接受的。
【问题讨论】:
标签: asp.net file-upload updatepanel postback formview