Я пытаюсь загрузить файлы с помощью AjaxFileUpload, я сделал это. Но теперь мне также нужно знать 2 параметра, 1 указывается на URL-адресе myPage.aspx? Parameter = 2Получить значение из сеанса или ViewState в событиях AjaxFileUpload из AjaxToolkit
второй находится в ViewState.
Но события OnUploadStart или OnUploadComplete
я не имею доступа к этим значениям случае, когда я попробовал сеанс.
Как я могу решить эту проблему ??
Вот мой ASPX:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AutoUpload.aspx.cs" Inherits="AutoUpload" %>
<%@ Register TagPrefix="ajaxToolkit" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit, Version=15.1.4.0, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"> </script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:TextBox runat="server" ID="txtValue"></asp:TextBox>
<asp:Button runat="server" ID="btnSetValue" Text="set" OnClick="btnSetValue_OnClick"/>
<asp:HiddenField runat="server" ID="hiddenValue"/>
<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload" MaximumNumberOfFiles="50" AllowedFileTypes="jpg,jpeg" OnUploadComplete="AjaxFileUpload_OnUploadComplete" OnUploadStart="AjaxFileUpload_OnUploadStart" runat="server" />
</div>
</form>
А вот мой стороне сервера
using System;
using AjaxControlToolkit;
public static class Validators
{
public static bool IsNumeric(this string value)
{
int myInt;
bool isNumerical = int.TryParse(value, out myInt);
return isNumerical;
}
}
public partial class AutoUpload : System.Web.UI.Page
{
public int Recid
{
get
{
if ((ViewState["Recid"] != null) && ((ViewState["Recid"].ToString()).IsNumeric()))
return Convert.ToInt32(ViewState["Recid"]);
return 0;
}
set { ViewState["Recid"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["id"];
if (!string.IsNullOrEmpty(id) && id.IsNumeric())
Recid = Convert.ToInt32(id);
}
protected void btnSetValue_OnClick(object sender, EventArgs e)
{
hiddenValue.Value = txtValue.Text.ToString();
}
protected void AjaxFileUpload_OnUploadStart(object sender, AjaxFileUploadStartEventArgs e)
{
int myId = Recid; // THIS IS ALWAYS 0
string otherValue = hiddenValue.Value;
}
protected void AjaxFileUpload_OnUploadComplete(object sender, AjaxFileUploadEventArgs e)
{
int myId = Recid; // THIS IS ALWAYS 0
string otherValue = hiddenValue.Value;
AjaxFileUpload.SaveAs(Server.MapPath("~/" + e.FileName));
}
}
Если вы попытаетесь запустить ASPX с номинальной ameter например? id = 12, он должен быть сохранен в Recid, также значение из поля ввода должно храниться в hiddenValue.
Но когда я загружаю файлы (событие OnUploadStart или OnUploadComplete), я не имею доступа к этим значениям, я также пробовал сеанс, но он также не работал.