2

私はc#コードに次のような関数を持っています:

protected void UploadFile(Object s, EventArgs e)
{
blah blah blah
}

この関数はファイルをサーバーにアップロードします。

私はこのような関数を呼び出します:

<asp:Button ID="uploadButton" runat="server" Text="Upload!" OnClick="UploadFile"/>

関数に別の引数を渡したいのですが、それがファイルの名前になります。

しかし、私はそれをに追加しようとしましたがUploadFile、それは機能しません、どうすればそれを行うことができますか?ありがとう。

4

3 に答える 3

4

関数にファイル名を送信する必要がないため、奇妙に思えますUploadFileUploadFile関数自体でファイル名を使用できます。

protected void UploadFile(Object s, EventArgs e)
{
   // var file = ......
}

一方、別のコントロールからファイル名を取得する場合は、UploadFile関数でこのコントロールからファイル名を取得できます。

protected void UploadFile(Object s, EventArgs e)
{
   var file = textboxX.Text;
}
于 2013-01-23T10:45:15.117 に答える
1

これは、に添付されたイベントButtonです。メソッドのようにイベントを呼び出すべきではありません。代わりに、メソッド ロジックを別のメソッドに抽出し、そのメソッドをパラメーターで呼び出すことができます。へのアクセスFileNameに関する限り、File TextBox からアクセスできます (おそらく 1 つを使用しています)。

protected void UploadFile(Object s, EventArgs e)
{
UploadFileMethod(yourFileTextBox.Text);
}

private void UploadFileMethod(string FileName)
{
 //upload logic
}

そしてそれをどこかから呼び出す。

UploadFileMethod("NewFileName");
于 2013-01-23T10:49:50.753 に答える
0

多くのパラメーターを渡したい場合は、次のように独自のクラスを実装する必要があります。

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"));
于 2013-01-23T10:49:58.610 に答える