1

コールバックを使用して文字列関数を実行していますが、ラベルにリターンを表示できません。

見る:

    protected void ASPxUploadControl1_FileUploadComplete(object sender,
           FileUploadCompleteEventArgs e)
    {
        try
        {
            e.CallbackData = SaveNewFile(e.UploadedFile);
            lblret.Text = ????
        }
        catch (Exception ex)
        {
            String error = ex.ToString();
            lbleret.Text = error;
        }
    }



    string SaveNewFile(UploadedFile upfile)
    {
        if (!upfile.IsValid)
            return string.Empty;

        String RMSG = "Houve um erro ao enviar o arquivo!";
        Guid nid = Guid.NewGuid();
        String extOK = "0";
        const String updir = "~/tempIMGS/";
        String[] extensao = { ".gif", ".png", ".jpeg", ".jpg", ".bmp" };//extensões
        FileInfo finfo = new FileInfo(upfile.FileName);

        long fmaxsize = 2097152;//tamanho do arquivo

        String filext = System.IO.Path.GetExtension(upfile.FileName);

        for (int i = 0; i < extensao.Length; i++)
        {
            if (filext == extensao[i])//se a extensão for permitida
            {
                if (upfile.ContentLength <= fmaxsize)//se o arquivo tiver no máximo 2mbs
                {
                    extOK = "1";
                }
                else
                {
                    RMSG = "O arquivo selecionado ultrapassa o tamanho máximo por arquivo (2Mbs) \n " + upfile.FileName.ToString();
                }
            }
            else
            {
                RMSG = "O arquivo não se encaixa no quadro de extensões permitiras! (.gif , .png , .jpeg , .jpg , .bmp";
            }
        }

        if (extOK == "1")
        {
            string resFileName = MapPath(updir) + nid + filext;
            upfile.SaveAs(resFileName);
            //Response.Write("<script>alert('arquivo enviado com sucesso');</script>");
            RMSG = "Arquivo enviado com sucesso!";
        }
        return RMSG;
    }

関数を実行しようとしていますが、実行中に VAR RMSG をメッセージで定義すると、関数の終了時に最後のエラー メッセージが返されます。

「TRY」で参照してくださいe.CallbackData = EXECUTE_FUNCTION。戻り値が e.CallbackData に格納されると、

e.callbackdata からこのリターンを取得するにはどうすればよいですか?

4

1 に答える 1

1

最初に結果を変数に保存してから、それを CallbackData に割り当てたり、何らかの変換を行って次のようにラベルに割り当てたりできます。

        string result = SaveNewFile(e.UploadedFile);
        e.CallbackData = result;
        lblret.Text = String.Format(
                           "processed at {0} with a result of: {1}", 
                            DateTime.Now,  
                            result);
于 2013-09-20T18:54:06.070 に答える