Webフォームでファイルダイアログを使用したいため
HTMLコントロールのFile Field
を使っていますが、ポストバック後にテキストがクリアされてしまいます。
WebコンポーネントのButtonとTextBoxでファイルダイアログを
利用する方法はございませんでしょうか?
Internet Explorerのみでも動作すればいいのですが・・・。
それができない場合は、ポストバック後にFile Fieldのテキストをクリアしない
方法はございませんでしょうか?セキュリティの観点から<INPUT TYPE=file>タグに初期値を設定できないと聞いており、自己解決できておりません。
〜私のサンプルサイト〜
http://slbeth.brinkster.net/WebForm1.aspx
ファイルボタンを押すと、参照で設定した絶対パス名からファイル名のみを下段のテキストボックスに表示します。
ボタン押下後、上段のFile Fieldのテキストがクリアされてしまいます。
〜開発環境〜
VB.NET 2002
.NET Framework v1.0
Windows2000 server
以上、よろしくお願いします。
ノータッチ・デプロイメントなら実現可能ですが、
・WEBアプリだが、Windowアプリのようになる
・.NET 2003 が必要(.NET Framework 1.0でもOK)
・.NET 2002 では不可
詳しい説明はここでされていますね。
http://www.atmarkit.co.jp/fdotnet/special/ntdeploy/ntdeploy_01.html
ただ、ご利用の環境が.NET 2002ですので現実的ではありませんね。
補足コメントになりますが、
今回の作成されているWEBアプリですが、HTTP1.0/1.1準拠に反する
設計ミスだと思いますが。。。あと、.NETの仕様もわかっていない。。。
僕なら設計した方に、文句いいますよ。
次の文句が最適ですね。
・設計を今後も行うなら、HTTPプロトコル仕様を勉強してください。
・設計を今後も行うなら、.NET.ASPの構造を理解しておいてください。
・正式な設計をする前に、モジュール単体レベルでのテスト実績を作ってからコンポーネントの実装を考えてください。
予断は、おいておいて、、、
現実的な方法として、
・HTTP準拠にするなら、<INPUT TYPE=file>タグでデフォルト値をセットする
また、JavaScriptでセットする
・.NET2003で可能なら、ノータッチ・デプロイメントを利用し、
Winodws.Formコンポーネントを利用する
以上が、.NET.ASPでの基礎の一部です。
上記、.NET 2002 でもOKですね
>・HTTP準拠にするなら、<INPUT TYPE=file>タグでデフォルト値をセットする
> また、JavaScriptでセットする
ですが、セットする値をエンティティ化しておけば、
ちょっとは、セキュアになります。
>・設計を今後も行うなら、HTTPプロトコル仕様を勉強してください。
>・設計を今後も行うなら、.NET.ASPの構造を理解しておいてください。
厳しいご指摘、恐れ入ります。
おっしゃるとおりで、外部仕様に見合った機能をつまみ食いしながら開発しているため、根本的な理解ができておりません。
勉強意欲はあるのですが、量販店などに行っても適した書籍を見つけることができません。もし推薦図書をご教授いただけるようでしたら、お願いします。
さて本題ですが
ノータッチディプロイメントではクライアント側に.NET Frameworkがインストールされていることが前提条件のようですね。
となるとJavaScriptでの設定がよさそうです。
JavaScritはよく耳にするのですが、これまで触れたことがありませんでした。この機会に学習してみたいと思います。
それほど難しい言語ではなさそうなので
アドバイスをサンプルページに反映できたら、またこちらに連絡させていただきます。
ツイート | ![]() |