ASP.NETフォーラムでこれを聞いてみましたが、誰も解決策を持っていませんでした。ないのではないかと思い始めています。
私がやりたいのは、テキストボックスを非表示にしながら、AsyncFileUploadコントロールの[参照]ボタンの外観とサイズをカスタマイズすることです。または、AsyncFileUploadを完全に非表示にして、外観をカスタマイズできるボタンからその機能を呼び出すこともできます。
AsyncFileUpload コントロールに対しても、SLaks が提供するソリューションを引き続き使用できます。
コード:
<div id="fileUploadDiv">
<asp:AsyncFileUpload ID="AsyncFileUpload1" runat="server" />
</div>
このようにレンダリングされます:
<div id="fileUploadDiv">
<span id="MainContent_AsyncFileUpload1">
<input type="hidden" name="ctl00$MainContent$AsyncFileUpload1$ctl00" id="MainContent_AsyncFileUpload1_ctl00" />
<div id="MainContent_AsyncFileUpload1_ctl01" name="MainContent_AsyncFileUpload1_ctl01">
<input name="ctl00$MainContent$AsyncFileUpload1$ctl02" type="file" id="MainContent_AsyncFileUpload1_ctl02" id="MainContent_AsyncFileUpload1_ctl02" onkeydown="return false;" onkeypress="return false;" onmousedown="return false;" style="width:355px;" />
</div>
</span>
</div>
したがって、CSS セレクタ#fileUploadDiv input[type=file]を使用すると、通常の <input type='file'> 要素で行うのと同じ方法で、AsyncFileUpload コントロールのスタイルを変更できます。
このソリューションの詳細については、こちらのブログを参照してください。
コントロールの を設定し、opacity
同じサイズの他のコントロールを追加することで、必要なビューを維持できます。
この参照を見つけてください:
この方法は私にとってはうまくいきました。
http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
これは少し左翼的かもしれませんが、より良い解決策は Flash ベースのソリューションを使用することです。ASP.NET 用に特別に作成されたものもいくつかあり、かなりの量のカスタマイズが行われているようです。
これは問題を直接解決するものではありませんが、同様の結果を得る別の方法です。