0

クライアント側のコードを使用してイメージ コントロールのイメージ URL を設定し、C# コードを使用してイメージをサーバーに保存したいと考えています。これが私が実装したものです:

<asp:Button ID="btnImageUpload" OnClick="btnImageUpload_Click"  runat="server" Text="Preview" CausesValidation="false" OnClientClick="Image_View();"/>

C# コード:

protected void btnImageUpload_Click(object sender, EventArgs e)
{
    if (Directory.Exists(@"C:\\Images"))
        SaveImage_Server();
    else
    {
        Directory.CreateDirectory(@"C:\\Images");
        SaveImage_Server();
    }
}
    public void SaveImage_Server()
    {
        try
        {
            if (FlUpldImage.PostedFile.ContentLength > 0)
            {
                String fn = Convert.ToString(DateTime.Now) + Path.GetFileName(FlUpldImage.FileName);
                if (fn.Contains('/'))
                {
                    fn = fn.Replace("/", "");
                }
                if (fn.Contains(':'))
                {
                    fn = fn.Replace(":", "");
                }
                if (fn.Contains(" "))
                {
                    fn = fn.Replace(" ", "");
                }
                String Saved_ImagePath = @"C://Images/" + fn; // making the path with created dynamically folder name
                FlUpldImage.SaveAs(Saved_ImagePath);
                HidnLocalImageURL.Value = Saved_ImagePath;

            }
        }
        catch (Exception re)
        { 
        }
    }

JavaScript

    function Image_View() {
//        __doPostBack('<%= btnImageUpload.ClientID %>', '');

//        var clickButton = document.getElementById("<%= btnImageUpload.ClientID %>");
//        clickButton.click()

        var idFlUpload = '<%= FlUpldImage.ClientID %>';
        var fu1 = document.getElementById(idFlUpload);
        var idImgCntrl = '<%= imgCorrect.ClientID %>';
        var ImgCntrl = document.getElementById(idImgCntrl);

        alert("You selected " + fu1.value);
        ImgCntrl.setAttribute('src', fu1.value);
    }

今私の問題は、サーバー側のコードが実行されると、ページが更新され、JS を使用してイメージ コントロールに設定されたリンクがデフォルト値にリセットされることです。

画像も保存され、JSを介して画像URLプロパティも設定されるようにするにはどうすればよいですか。

これ以外に実装する方法があれば教えてください。前もって感謝します!

4

1 に答える 1

0

サーバーにも設定する必要があります。非表示フィールドを使用して URL を保存し、サーバー上のその非表示フィールドにアクセスして、mgCntrl.ImageUrl を設定するための URL を取得できます。

htmlで

<input type="hidden" runat="server" id="hdnImageSrc" />

クライアントの JavaScript で

hdnImageSrc = document.getElementById('<%= hdnImageSrc.ClientID %>');
mgCntrl.setAttribute('src', fu1.value);
hdnImageSrc.value = fu1.value;

サーバー側のコードについて

mgCntrl.ImageUrl = hdnImageSrc.Value;
于 2012-08-11T07:17:44.120 に答える