トップ回答者
FileUploadとポストバックごとの送信

質問
回答
-
なかなかうまい手を思いつかないのですが、とりあえずOnSubmit時にevent.srcElement.idでアップロードボタンが押されたどうかを判断し、そうでなければFileUploadを空白にして逃げるという手があります。
FileUploadのvalueはそのままでは空白にはできないので、FileUploadをspanでくくっておき、そのspanのinnerHTMLに同じspanのinnerHTMLを代入するようにすると、valueがリセットされます。
valueがリセットされることによって逃げるというのがあまり美しくないのですが・・・
すべての返信
-
trapemiya さんからの引用 FileUploadにファイル名をセットした状態でプルダウンを操作してポストバックが発生した場合、ファイルはサーバーへアップロードされます。しかし、その後、FileUploadは空白に戻されますので、プルダウンを操作する度にファイルがアップロードされることはないと思います。
ありがとうございます。
ただ、今回の場合、UIの操作上からはAutoPostBack時にはファイル送信は無いかのような画面になってます。
また、作りとしてもそうしたくはありません。
可能であれば、マスタから生成するプルダウンのAutoPostBackはアップロード無しで行わせたいのですが、
それは.Netでは不可能でしょうか。例えば、Formを分割するなどを考えましたが、.Netではそれはダメだと
のことです。 -
なかなかうまい手を思いつかないのですが、とりあえずOnSubmit時にevent.srcElement.idでアップロードボタンが押されたどうかを判断し、そうでなければFileUploadを空白にして逃げるという手があります。
FileUploadのvalueはそのままでは空白にはできないので、FileUploadをspanでくくっておき、そのspanのinnerHTMLに同じspanのinnerHTMLを代入するようにすると、valueがリセットされます。
valueがリセットされることによって逃げるというのがあまり美しくないのですが・・・
-
trapemiya さんからの引用 なかなかうまい手を思いつかないのですが、とりあえずOnSubmit時にevent.srcElement.idでアップロードボタンが押されたどうかを判断し、そうでなければFileUploadを空白にして逃げるという手があります。
なるほど!そういう手はありますね。
後はドロップダウンリストをAjax実装にするといった方法になるのでしょうか。調べてみると、AutoPostBackで
ファイルパスの欄が空白になるということを問題にするものは結構見つかったのですが、毎回ファイルが送信
されていることを問題にしている記事があまり見つからなかったのです。ちょっと意外でした。
通常の定石としては、アップロードのFormは別画面で行ったりするんでしょうか。以前、やはり.NETでアップロード
を実装したことがありましたが、その際にはアップロード用のFormのみを持つ子画面をポップアップさせてました。
Formが分割できない、というのはこういう時痛いですけど、皆さんはどうしているのかできればお聞かせ願えれば
と思います。 -
初回投稿から結構経ちますので当スレッドは終わりにしたいと思います。結論としては、
1.trapemiya さん案のJavaScriptによるサブミットボタン判定によるファイル送信制御。
2.更新部分のAjax実装。
3.仕様変更をし、ファイルアップロード部分をポップアップ等の別画面とする。
あたりでしょうか。Ajax.Netの拡張を入れてみてちょっと試したのですが、部分更新については凄く簡単に実装可能です。
デザインが動かせない場合には今後はこちらを選ぶべきかと感じました。
また、今回に関しては、仕様変更をして別画面にする方法を取りました。他のサイト見ても現状ではそちらがメジャーかと
思われます。
ありがとうございました。