1

我有一个带有一组文本框和一个图像上传器的 jquery UI 窗口。我已经启动并运行良好,但是图像上传器有问题。

当用户点击上传他们的图片时,代码触发正常,但在回发到同一页面后返回,但显示为平面页面(即没有 UI 窗口和样式)。

IM 猜测由于页面已回发,它对其先前的状态一无所知。为菜鸟之类的问题道歉,我通常会参与 MVC 项目,并且可以在睡梦中做到这一点,哈哈。

任何人都可以就我可以做什么提供任何建议。代码:

这从网格加载窗口:

$("a[name^='editSection_']").on("click", function (e) {
    e.preventDefault();

    var id = $(this).data("id");
    var divDiag = $("#addEdit");


    $.ajax({
        url: "/edit.aspx?id=" + id,
        success: function (data) {
            $(divDiag).html(data);
            $(divDiag).dialog({
                show: { effect: 'drop', direction: "up" },
                title: "Editing Feature Box",
                height: 800,
                width: 740,
                modal: true,
                resizable: false,
                option: "show",
                close: function (ev, ui) {
                    window.location.reload(true);
                }
            });
        },
        error: function (data) {
            $(divDiag).html(data);
            $(divDiag).dialog({

                show: { effect: 'drop', direction: "up" },
                title: "Editing Feature Box",
                height: 800,
                width: 740,
                modal: true,
                resizable: false,
                option: "show",
                close: function (ev, ui) {
                    window.location.reload(true);
                }
            });
        }
    });

这是图片上传器的 HTML。

        <asp:FileUpload ID="editImage" runat="server" />
        <asp:Button ID="btnUploadImage" Text="Upload" runat="server" OnClick="btnUploadImage_Click" />
        <asp:Label ID="lblUpload" runat="server"></asp:Label>

代码在 btnUploadImage 上运行:

    protected void btnUploadImage_Click(object sender, EventArgs e)
    {
        if (editImage.HasFile)
        {
            try
            {
    .....code to upload sits here 

上传完成后,我想直接返回 UI 窗口,状态与以前相同。

非常感谢任何帮助

4

2 回答 2

0

如果您擅长 jquery,则使用以下 jquery 组件,您必须为您的解决方案自定义它

Dropzonejs

于 2013-04-18T08:39:01.653 回答
0

没错,文件上传控件在页面上进行了完整的回发,以便上传文件,因此打开的对话框会丢失。从我看到你有两个选择:

  • 在回发后以与之前相同的状态重新打开 Jquery 对话框(在您的情况下,这可能是不可能的或不可取的)
  • 将文件上传控件更改为其他内容。也许在这里使用 ajax 上传会是一个更好的选择,比如这个
于 2013-04-18T08:26:42.037 回答