-1

我有带有几个控件的 Default.aspx 以及 Uploadify Image 上传控件,我调用另一个文件 UploadImages.aspx 文件来使用 jQuery 上传图像,我使用通用 C# 代码上传图像并将图像详细信息也保存在数据库中。

Default.aspx 页面上的 HTML 代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False"  UpdateMode="Conditional">
   <ContentTemplate>                                 
        <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatDirection="Horizontal" >
            <ItemTemplate>
                <br /><img src='http://test.kashmirsouq.com/ImageUploads/<%# Eval("ImageID") %>' width="100px" height="100px"   vspace="2" hspace="2" border="1" />
                <br /><asp:LinkButton ID="lnkBtnDeleteImage" CommandArgument='<%# Eval("sno") %>' CommandName="Delete" runat="server">
         Delete</asp:LinkButton>
        <br />
            </ItemTemplate>
        </asp:DataList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SQLConnectionString %>" 
            SelectCommand="SELECT [sno], [ImageID] FROM [User_Images]">
        </asp:SqlDataSource>
 </ContentTemplate>
</asp:UpdatePanel> 

我想使用UpdatePanel1.Update()方法来刷新UpdatePanel1,但我不知道如何在UploadImage.aspx 页面中注册updatePanel1 控件。

请帮我解决这个问题我的基本目标是在上传图像后显示图像而不刷新页面

出于安全原因,链接上的页面示例已删除,因为我让它工作

4

3 回答 3

0

ASP.NET WebForms 中的 UpdatePanel 只能用于通过处理您来自的相同 aspx 文件来刷新您所在页面的部分内容。因此,Default.aspx 中的 UpdatePanel 将始终返回到 Default.aspx。它根本无法获得像 UploadImage.aspx 这样的另一个页面的输出。

您可以通过将 UploadImage.aspx 更改为用户控件来解决此问题,并将其包含在 Default.aspx 页面上的更新面板中。

于 2011-11-05T12:17:45.810 回答
0

尝试使用 uploadify 的onAllComplete事件从客户端代码刷新更新面板。为此,添加到页面按钮,将此按钮的 AsyncPostbackHandler 添加到 updatepanel 的触发器集合并在 uploadify onAllComplete 事件处理程序中以编程方式单击此按钮:

$('#fuFiles').uploadify({
    onAllComplete: function (event, data) { $("#<%= HiddenButton.ClientID %>").click(); return true; },
    uploader: 'Scripts/uploadify.swf',
    script: 'FileUploads.aspx',
    cancelImg: 'Scripts/cancel.png',
    auto: 'true',
    multi: 'true',
    buttonText: 'Browse...',
    queueSizeLimit: 5,
    simUploadLimit: 2
});


<asp:Button runat="server" ID="HiddenButton" Style="display: none;" />

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="HiddenButton" />
            </Triggers>
于 2011-11-05T20:18:12.563 回答
0

我对您的代码@Yuriy Rozhovetskiy进行了一些小改动,因为某种原因它无法正常工作。归功于@Yuriy Rozhovetskiy,所以我会将他的答案标记为正确,以下是工作和测试版本。

<script type="text/javascript">
    $(document).ready(function () {
        $('#fuFiles').uploadify({
            //'onAllComplete': function (event, data) { $("#<%= HiddenButton.ClientID %>").click(); return true; },
            'uploader': 'Scripts/uploadify.swf',
            'script': 'FileUploads.aspx',
            'cancelImg': 'Scripts/cancel.png',
            'auto': 'true',
            'multi': 'true',
            'fileExt': '*.jpg;*.gif;*.png',
            'buttonText': 'Browse...',
            'queueSizeLimit': 5,
            'simUploadLimit': 2,
            'onAllComplete': function (event, data) 
            {
                $("#<%= HiddenButton.ClientID %>").click();
                return true; 
            }
        });
    });
</script>

        <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatDirection="Horizontal" >
            <ItemTemplate>
                <br /><img src='http://test.kashmirsouq.com/ImageUploads/<%# Eval("ImageID") %>' width="100px" height="100px"   vspace="2" hspace="2" border="1" />
                <br /><asp:LinkButton ID="lnkBtnDeleteImage" CommandArgument='<%# Eval("sno") %>' CommandName="Delete" runat="server">
         Delete</asp:LinkButton>
        <br />
            </ItemTemplate>
        </asp:DataList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SQLConnectionString %>" 
            SelectCommand="SELECT [sno], [ImageID] FROM [User_Images]">
        </asp:SqlDataSource>
 </ContentTemplate>
</asp:UpdatePanel> 
<asp:Button runat="server" ID="HiddenButton"  Style="display: none;" onclick="HiddenButton_Click" />

   <div id="fuFiles"></div> 
于 2011-11-06T06:18:57.360 回答