ASP.NET FileUploadコントロールといくつかのテキストボックスと送信ボタンを使用してC#WebFormを作成したいと思います。アイデア:ユーザーがファイルを選択し、いくつかのデータを入力します。フォームを送信すると、データがチェックされ、有効な場合はサーバーにファイルが保存されます。そうでない場合、エラーメッセージが表示されます。 UpdatePanelトリガーなどについては非常に多くの記事がありますが、実際の解決策はありません。ASP.NET FileUpload with precondtions(PostBack後に空白)
ここでは背後に私のコード:
protected void Page_Load(object sender, EventArgs e) {
// for FileUpload-Control outside UpdatePanel
Page.Form.Attributes.Add("enctype", "multipart/form-data");
}
protected void Button1_Click(object sender, EventArgs e) {
bool valid = true;
string errorMessage = DateTime.Now.ToLongTimeString() + ": ";
if (this.TextBox1.Text.Equals("")) {
valid = false;
errorMessage += "Missing Textbox1<br/>";
}
if (this.TextBox2.Text.Equals("")) {
valid = false;
errorMessage += "Missing Textbox2<br/>";
}
if (this.TextBox3.Text.Equals("")) {
valid = false;
errorMessage += "Missing Textbox3<br/>";
}
if (!this.FileUpload3.HasFile) {
// is alway false!
errorMessage += "Missing FileUpload3<br/>";
}
if (valid) {
// never fires, because .HasFile is always false
this.Label1.Text = "valid!";
// do upload stuff
this.FileUpload3.SaveAs("foobar");
} else {
this.Label1.Text = errorMessage;
}
}
そして、ここでは私のサンプルASPXです:
<form id="Upload" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:FileUpload ID="FileUpload3" runat="server" />
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
私のFileUploadは常に空である理由、それはUpdatePanelの外だが、誰もが、見ないと私は持っていますPage_Load()イベントの必須行?もしあなたがコードを調整できたら?
が のSiS
ありがとうのFileUploadコントロールは、完全なポストバックを必要とするので、 'Button1'は1をトリガーすることを確認してください。 – VDWWD
私はUpdatePanel内にを追加しましたが、これは私の問題を解決しません。ファイルを選択してもTextBox3を逃した場合、ページ更新後にFileUploadは空です。私はFileUploadがそのデータを保持するが、エラーテキストを表示したい。 –
StehtimSchilf
これはFIleUploadの仕組みではありません。 TextBox3が空の場合は、サーバー上の一時フォルダにファイルを保存する必要があります。 – VDWWD