传递值+上传文件

时间:2013-05-04 08:36:28

标签: c# asp.net file-upload telerik

我正在使用asp.net c#和Telerik工具。我的问题是,我想传递价值

,下拉列表和文件上传的详细信息)使用java脚本到另一个asp页面,但是没有什么工作,我想获取文件内容并传递它?你能给我一个解决方案吗?请!

第1页

<script type="text/javascript">
               function GetRadWindow() {
                    var oWindow = null;
                    if (window.radWindow) oWindow = window.radWindow;
                    else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
                    return oWindow;
               }
               function populateCityName(arg) {
                   var cityName = document.getElementById("cityName");
                   cityName.value = arg;
               }
                function returnToParent() {
                    //create the argument that will be returned to the parent page
                    var oArg = new Object();

                    //get the city's name           
                    oArg.cityName = document.getElementById("cityName").value;
                    //get a reference to the current RadWindow
                    var oWnd = GetRadWindow();




                    //Close the RadWindow and send the argument to the parent page
                    if (oArg.cityName) {
                        oWnd.close(oArg);
                    }
                    else {
                        alert("Please fill field");
                    }
                }
          </script>

第2页:

 function OnClientClose(oWnd, args) {
                //get the transferred arguments
                var arg = args.get_argument();
                if (arg) {
                    var cityName = arg.cityName;

            $get("order").innerHTML = "You chose to fly to <strong>" + cityName + "</strong>";
                }

3 个答案:

答案 0 :(得分:1)

尝试使用
 var cityName = document.getElementById('<%= cityName.ClientID %>');代替

var cityName = document.getElementById("cityName");

答案 1 :(得分:0)

您可以创建一个Session变量来存储上传的fileContent并在另一个页面上访问它。

对于像TextBox或下拉列表这样的简单文本,您可以直接通过查询字符串发送它们。

像这样创建会话变量。

<强> page1.aspx.cs

Session["FileContent"] = FileUpload1.FileContent;

并在下面的其他页面上访问它;

<强> page2.aspx.cs

if(Session["FileContent"]!=null)
{
    Stream fileData = (Stream)Session["FileContent"];

    StreamReader reader = new StreamReader(stream);
    string imgData = reader.ReadToEnd();

    //save imgData to db
}

您无法通过javascript访问其他网页控制值。
如果你不通过这样做document.getElementById("cityName")得到任何东西,那么这只是意味着,这个页面上没有这种带有id的控件。

尝试使用queryString(或Session变量)传递TextBox文本。

答案 2 :(得分:0)

Telerik特定的API可以帮助您将数据从RadWindow传递到父窗口,您可以使用AjaxManager重新加载上传的文件内容。

考虑此示例演示如何将值从RadWindow传递回拥有页面: http://demos.telerik.com/aspnet-ajax/window/examples/clientsideevents/defaultcs.aspx?product=window