我一直在尝试使用AjaxControlToolkit的AjaxFileUpload控件的ContextKeys,但是我在运行时设置值时没有成功。如果我将它设置为标记中的静态值,它可以工作,但是当我尝试从后面的代码或javascript中设置它时,它会失败。我已经看了几个不同的修复示例,但我还没有能够解决这个问题。这是一个例子:
How can I use the ContextKeys property for the AjaxFileUpload control?
文件中的代码不再类似于这些代码,以便能够对工具包进行这些编辑。
通过静态设置工作的标记是:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<div>
<ajaxToolkit:AjaxFileUpload ContextKeys="Testing" ID="ajaxFileUploadAttachments" runat="server" OnUploadComplete="ajaxFileUploadAttachments_UploadComplete" OnClientUploadStart="uploadStarted" />
</div>
</form>
和代码背后:
protected void ajaxFileUploadAttachments_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
String ContextKeyValue = ajaxFileUploadAttachments.ContextKeys;
string fileNameWithPath = Server.MapPath("~/Temp/") + e.FileName.ToString();
ajaxFileUploadAttachments.SaveAs(fileNameWithPath);
}
在此版本中,传递上下文密钥。如果我尝试通过以下方式从页面加载中的代码设置它:
protected void Page_Load(object sender, EventArgs e)
{
ajaxFileUploadAttachments.ContextKeys = "TestingFromPageLoad";
}
它不起作用,我仍然从标记中获得控件的静态值。
我已尝试使用OnClientUploadStart在javascript中的示例,但仍然只传递静态值。
任何人都有解决此问题的方法。我喜欢控件,但我需要能够在不使用会话变量的情况下传递值。
感谢您的帮助,非常感谢。