2

我遇到了一个问题,目前我在我的母版页中有一个更新面板,在我的一个子页面中我有一个 asp 文件上传控件。

我在主页面中的更新面板[年龄:

    <form id="form1" runat="server">
      <asp:ScriptManager ID="ScriptManager1" runat="server">
     </asp:ScriptManager>

     <asp:updateprogress associatedupdatepanelid="UpdatePanel1"
        id="updateProgress" runat="server">
         <progresstemplate>
            <div id="processMessage" style=" background-image:url('../../Styles/ajax-loader3.gif'); width:100px; height:100px; background-repeat:no-repeat; background-position:center;">

               </div>
        </progresstemplate>
    </asp:updateprogress> 

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
     <ContentTemplate>
..
    </ContentTemplate>
 </asp:UpdatePanel>
</form>

我的孩子页面需要文件上传:

<div id="Annoucments" class="ContentDIV">
            <h2 class="Tabheader">Annoucments</h2>
            <p class="tabdescription">Here you will be able to upload announcements and pictures to be displayed in the login page, below is the current announcement click on update to save the changes that you have made.</p>

            <table width = "100%">

            <tr>
            <td class="Tablabel">Annoucment title:</td> <td class="tableInput" align="left"><asp:TextBox ID="Announcement_TB" runat="server" CssClass="textboxTabs"></asp:TextBox></td>
            <td class="Tablabel">Picture/Poster:</td> <td class="tableInput" align="left"><asp:FileUpload ID="Announcement_PIC" runat="server"  CssClass="textboxTabsFiles"/></td>
            </tr>

            <tr>
            <td class="Tablabel">Description:</td> <td class="tableInput" align="left"><asp:TextBox ID="Announcement_Desc" CssClass="textboxTabs" runat="server" Rows="3" TextMode="MultiLine"></asp:TextBox></td>
            </tr>

            <tr><td colspan="4" style="height:10px" id ="BLANK">
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                </td></tr>

            <tr>
            <td colspan="2" align="right"><input type="button" id="Announcement_Update" runat="server" value="Update" class="TabButton" onserverclick="ANNOUNCEMENT_UPDATE_Click" style=" font-size:smaller"/></td><td colspan="2">&nbsp;&nbsp;<input type="button" ID="ANNOUNCEMENT_Cancel" runat="server" value="Cancel" class="TabButton" style=" font-size:smaller"/></td>  
            </tr>

            </table>

        </div>

*当我单击按钮 Announcement_Update 后端代码将被触发以获取我的文件名时,返回的文件名将始终为“”在调试时发现。*

4

4 回答 4

8

将此代码放在子页面中,以通过 PostBackTrigger 进行文件上传。

protected void Page_Load(object sender, EventArgs e)
{
    UpdatePanel updatePanel = Page.Master.FindControl("UpdatePanel1") as UpdatePanel;
    UpdatePanelControlTrigger trigger  = new PostBackTrigger();
    trigger.ControlID = Announcement_Update.UniqueID;
    updatePanel.Triggers.Add(trigger);
}

享受编码:)

于 2012-08-04T13:22:06.790 回答
0

你不能filename进去UpdatePanel

UpdatePanel从您的代码中删除它或使用Asynchronous File Uploader

或者,您可以使用Ajax 文件上传技术,但这有点棘手。

于 2012-08-04T09:11:55.227 回答
0

Asp UpdatePanel 在回发问题的更新面板中不起作用。您可以使用与上传器相关的按钮添加触发器,例如

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Button ID="Button1" runat="server" Text="Click" />
                </ContentTemplate>
                <Triggers>
                    <asp:PostBackTrigger ControlID="Button1" />
                </Triggers>
            </asp:UpdatePanel>
于 2012-08-04T09:41:57.020 回答
0

如果您添加触发器,它对我有用,但还要确保编辑表单标签以包括:

<form runat="server" enctype="multipart/form-data">
于 2013-01-15T18:28:42.163 回答