“”没有重载与委托“System.EventHandler”匹配

本文关键字:System 匹配 EventHandler 重载 | 更新日期: 2023-09-27 18:35:26

这段代码生成上面的错误,我试图做一些将文件发送到ftp服务器的方法

public void btnSend_Click(object sender, GridViewCommandEventArgs e)
{

    msgerror = SP.StrSPBUS_DocClient(Convert.ToInt32(e.CommandArgument.ToString()));
    if (msgerror.Equals("Sucess"))
    {
        String Files = SP.OUTSTR_NMDOCUMENT;
        String Address = SP.OUTSTR_FTPCAM;
        String User = SP.OUTSTR_FTPUSER;
        String Pass = SP.OUTSTR_FTPPASS;
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Address + "/" + Path.GetFileName(File));
        request.Method = WebRequestMethods.Ftp.UploadFile;
        request.Credentials = new NetworkCredential(User, Pass);
        request.UsePassive = true;
        request.UseBinary = true;
        request.KeepAlive = false;
        var stream = File.OpenRead(Files);
        byte[] buffer = new byte[stream.Length];
        stream.Read(buffer, 0, buffer.Length);
        stream.Close();
        var reqStream = request.GetRequestStream();
        reqStream.Write(buffer, 0, buffer.Length);
        reqStream.Close();
    }
    else
    {
        SP.StrImprimeMessage("Error!");
        return;
    }
}

和文件.aspx这是按钮的代码

<tr class="tabelinner">
            <td class="leftcell" valign="middle">
                    <asp:Button ID="btnSrend" runat="server" Text="Send" CssClass="ButtonLink" ValidationGroup="sending"  CommandArgument="Sending" onclick="btnSend_Click"     />
                <br />
            </td>              
        </tr>

“”没有重载与委托“System.EventHandler”匹配

问题在于GridViewCommandEventArgs应该只是EventArgs

public void btnSend_Click(object sender, EventArgs e)

编辑:

我看到在您的代码中使用了命令参数,所以如果您想使用它,您应该看到这篇文章

基本上使用 onCommand 而不是 onClick 或将发送者强制转换为按钮来获取命令参数,如下所示:

var argument = ((Button)sender).CommandArgument;

按钮单击事件的正确签名是

public void btnSend_Click(object sender, EventArgs e)

但是在这一点上你有一个问题,因为传递的 EventArgs 实例不知道一个名为 e.CommandArgument 的属性,所以你需要另一种方法来在这个事件中使用该值。