使用 sender 和 e 传递更多参数
Pass more arguments with sender and e?
我在 c# 代码中有一个函数,如下所示:
protected void UploadFile(Object s, EventArgs e)
{
blah blah blah
}
并且此函数会将文件上传到服务器。
我像这样调用函数:
<asp:Button ID="uploadButton" runat="server" Text="Upload!" OnClick="UploadFile"/>
我想将另一个参数传递给函数,它将是文件的名称。
但是我试图将其添加到UploadFile
中,但它不起作用,我该怎么做?谢谢。
这似乎很奇怪,因为您不需要将文件名发送到UploadFile
函数。您可以在UploadFile
函数本身中使用文件名。
protected void UploadFile(Object s, EventArgs e)
{
// var file = ......
}
另一方面,如果从另一个控件获取文件名,则可以在 UploadFile
函数中从此控件获取文件名。
protected void UploadFile(Object s, EventArgs e)
{
var file = textboxX.Text;
}
这是一个附加到您的Button
的事件。不应像方法一样调用事件,而是可以将方法逻辑提取到单独的方法,然后使用参数调用该方法。就访问FileName
而言,您可以从文件文本框访问它(可能您正在使用一个)
protected void UploadFile(Object s, EventArgs e)
{
UploadFileMethod(yourFileTextBox.Text);
}
private void UploadFileMethod(string FileName)
{
//upload logic
}
并从其他地方调用它。
UploadFileMethod("NewFileName");
如果你想
传递很多参数,你应该像这样实现你自己的类:
public class MyEventArgs : EventArgs
{
public MyEventArgs(params object[] args)
{
Args = args;
}
public object[] Args { get; set; }
}
您的活动将采用以下形式:
public event EventHandler<MyEventArgs> MyEvent;
要提升您的活动:
MyEvent(this, new MyEventArgs(1, "information"));
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- MVC 3页面导航和使用javascript传递参数
- 从查询字符串参数推断出正确的数据类型
- 传递包含'%的参数'在URL中
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用 sender 和 e 传递更多参数