C#.net equivalent for JS .on()
本文关键字:on JS for net equivalent | 更新日期: 2023-09-27 18:11:48
我有一个带有<input type='file'>
元素的aspx页面。我想用c#来保存通过这些控件上传的文件。我已经看到了某些解决方案(像这个),我可以在On_Load
中使用。问题是我的input
控件将使用JS动态创建,我不希望每次上传图像时都回发。
是否有一些等效的方法在c# JS的.on()
方法,这样我就可以附加一个处理程序到未来的控件?
EDIT:根据@Oceans的建议,我在input
控件内添加了onchange
事件处理程序:
<input type="file" onchange="saveFile" runat="server">
和我有一个saveFile
处理程序在我的.cs
后面:
protected void saveFile(object sender, EventArgs e)
{
var imagesDir = Server.MapPath("Images/");
var uploader = sender as FileUpload;
uploader.PostedFile.SaveAs(imagesDir + uploader.PostedFile.FileName);
}
当我通过input
控件选择一个文件时,saveFile
函数没有运行。我用onchange="alert('hi')"
替换了onchange="saveFile"
,以检查事件是否正在被触发,所以我显然错过了一些东西……可能与postback
和.asp
页面周期有关?
在我看来你是在描述一个EventHandler
。也许这个关于在ASP中创建事件处理程序的教程。. NET web表单页面可能对您有用。
如果我理解正确的话,你希望文件一被选中就上传。html上传文件控件支持onChange
事件来处理这个问题。当动态创建控件时,你应该只定义onChange。出于安全考虑,不建议自动上传文件。
你会得到这样的东西:
<input type='file' onChange='MyEventHandler' runat='server'>
<script runat="server">
protected void MyEventHandler(object sender, System.EventArgs e)
{
//do stuff
}
</script>
我建议你阅读下面的文档,因为你似乎熟悉JavaScript,这可能对你也有用。