FileUpload無法賦值解決方案


由於考慮到安全原因,不允許給FileUpload賦值,但是我們平時經常遇到頁面刷新后,FileUpload之前選擇的為空了,用戶需要重新選擇文件,很麻煩,這里提供一種比較簡單的解決辦法。

思路:做一個偽FileUpload控件,頁面上放一個FileUpload,設置不可見,用另外的button觸發FileUpload的“瀏覽...”事件,在FileUpload的change事件中把選擇的文件路徑賦值給TextBox,這里的TextBox和button組合就變成了這個偽FileUpload,這里的TextBox可以隨便賦值,頁面刷新也不會清空

UCFilejpload.ascx代碼:

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="UCFilejpload.ascx.vb" Inherits="WebApplicationVB.UCFilejpload" %>
<script src="jquery-1.9.1.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#selectFile').bind('click', function () {
                var ie = !-[1, ];
                if (ie) {
                    $('#fileupload').trigger('click').trigger('change');
                } else {
                    $('#fileupload').trigger('click');
                }
            });

            $('#fileupload').change(function () {
                $("#<%=txtFileUrl.ClientID%>").val($(this).val());
            });
        });
        function selectDo() {
            $("#fileupload").trigger('click');
        }
    </script>
<asp:TextBox ID="txtFileUrl" runat="server" Width="200px"></asp:TextBox>
<input type="file" name="fileupload" id="fileupload" style="width: 0px; FILTER: alpha(opacity=0); moz-opacity: 0; opacity: 0; display: none;" />
<input type="button" onclick="selectDo()" value="瀏覽..." />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtFileUrl" runat="server" ErrorMessage="*" ForeColor="Red"></asp:RequiredFieldValidator>

UCFilejpload.ascx.vb代碼:

Public Class UCFilejpload
    Inherits System.Web.UI.UserControl
    Public Property StrUrl As String
        Get
            Return txtFileUrl.Text
        End Get
        Set(value As String)
            txtFileUrl.Text = value
        End Set
    End Property
End Class

效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM