0

別のウィンドウにポップアップするアップロード機能があります。送信したときに、アップロード ウィンドウを開いたページに情報を送り返したいと思います。

ASP.net または C# で何らかの方法でそれが可能ですか? または、javascriptを使用する必要がありますか? そしてどうやって?

私の 2 つのページ: news.aspx - 私のニュースのフォームビューが含まれています。いくつかの入力を含むフォーム。これは、アップロードページを開くためのリンクがある場所です...

uploader.aspx - アップロードするアップロード コントローラーと C# コードが含まれています。これにより、C# コードから文字列が news.aspx に返され、入力フィールドまたはラベルの 1 つに入力されますが、重要ではありません。

アップローダー.aspx ファイル:

<form id="form1" runat="server">
<div>
Vælg en fil at uploade:<br />
    <asp:FileUpLoad id="FileUpLoad1" runat="server" />
    <asp:Button id="UploadBtn" Text="Upload File" OnClick="UploadBtn_Click" runat="server" Width="105px" />
    <br />
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>

コードの背後にある:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class admin_Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void UploadBtn_Click(object sender, EventArgs e) {

    Label1.Text = "Status: Uploader...";
    if (FileUpLoad1.HasFile) {
        FileUpLoad1.SaveAs(@"C:\Users\138409\Documents\Visual Studio 2010\Projects\Musicon\img\news\" + FileUpLoad1.FileName);
        Label1.Text = "Status: " + FileUpLoad1.FileName + " er blevet uploadet";
    } else {
        Label1.Text = "Status: Filen blev ikke uploadet...";
    }
}
}
4

1 に答える 1

0

ポップアップ ウィンドウを作成し、ポップアップ ウィンドウが閉じる前に情報を取得する Javascript コードを次に示します。(jQuery の例を少し追加します)

//Site1.Master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="PopupRedirect.Site1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html>

//Page1.aspx
<%@ Page Title="" Language="C#" MasterPageFile="Site1.Master" AutoEventWireup="true" CodeBehind="Page1.aspx.cs" Inherits="PopupRedirect.Page1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
  <script type="text/javascript">
    var message = "Hello World!";

    var closeWindow = function(event) {
      event.preventDefault();
      window.close();
    };

    window.onload = function() {
      document.getElementById('upload').addEventListener('click', closeWindow, false);
    };
  </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  <button id="upload">Upload File</button>
</asp:Content>


//UploadPage.aspx
<%@ Page Title="" Language="C#" MasterPageFile="Site1.Master" AutoEventWireup="true" CodeBehind="UploadPage.aspx.cs" Inherits="PopupRedirect.UploadPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
  <script type="text/javascript">
    var popupWindow;
    var windowOptions = "menubar=yes,location=yes,resizable=no,scrollbars=no,status=yes,width=350,height=350";
    var upload = function (event) {
      event.preventDefault();

      popupWindow = window.open("Page1.aspx", "Upload Page", windowOptions);
      popupWindow.onbeforeunload = pageClose;
    };

    var pageLoad = function(event) {
      document.getElementById('uploadLink').addEventListener('click', upload, false);
    };

    var pageClose = function (event) {
      //put the code here that you want to execute when the window is done.
      //like getting the value of some javascript variables
      if(typeof (popupWindow.message) != "undefined") {
        alert(popupWindow.message);
      }
    };

    window.onload = pageLoad;

  </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  <span>Welcome to this page! Click to upload.</span>
  <button id="uploadLink">Upload</button>
</asp:Content>
于 2012-08-29T12:56:16.037 に答える