我有一个 aspx 页面和一个代码。页面内容是通过 XML 和 XSLT 动态创建的tContent.Controls.Add(master.ParseControl(ApplyXslt(xml, xsl_trans, xsl_args)));
。tcontrol
控制在哪里<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
。在 XSLT 中,我有一个 Telerik 控件
<telerik:RadAsyncUpload RenderMode="Lightweight" ID="AsyncUpload1" runat="server"
OnClientFilesUploaded="OnClientFilesUploaded" OnFileUploaded="AsyncUpload1_FileUploaded"
MaxFileSize="2097152" AllowedFileExtensions="jpg,png,gif,bmp"
AutoAddFileInputs="false" Localization-Select="Upload Image" />
<asp:Label ID="Label1" Text="*Size limit: 2MB" runat="server" Style="font-size: 10px;"></asp:Label>
该控件有一个名为的事件onFileUploaded
,我将其设置为这样OnFileUploaded="AsyncUpload1_FileUploaded"
。在我的代码后面我有一个这样定义的函数
protected void AsyncUpload1_FileUploaded(object sender, FileUploadedEventArgs e)
{
string newfilename = "logo." + e.File.GetExtension();
string path = "/customer/" + MiscFunctions.currentCustXml+"/"+ newfilename;
e.File.SaveAs(path);
}
我知道该onFileUploaded
事件是在回发时触发的。但由于某种原因,它没有被调用。但是,当我将控件直接剪切并粘贴到 的内容中时<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
,事件处理程序会被正确触发。起初我以为是因为在控件初始化后添加了生成的内容,在Page_Load
调用时添加了类型化的内容,因此 Telerik 控件未正确初始化。所以我然后将代码移动到Page_Preinit
并且事件仍然没有被调用。有什么我想念的吗?还是在页面生命周期之前初始化控件时我做不到?