2012-03-05 80 views
0

在一個ASP.NET C#網站,我有一個輸入文件上傳到我的服務器。爲了克服類型=文件的輸入不能風格的問題我創建了一個樣式的div,看起來像輸入,但實際上只是將消息中繼到具有顯示的實際輸入:無可見。繼電器點擊按鈕觸發ASP.NET文件上傳

我的問題:中繼郵件不起作用,即當我將點擊消息中繼到實際輸入時,文件從未上傳(沒有任何反應)。我知道該按鈕的作品,因爲如果我點擊實際輸入,它會成功上傳文件。

有沒有一些ASP.NET安全阻止我能夠做到這一點?發生什麼事了?我怎麼能達到我想做的事情:
有一個風格輸入其中類型=文件(不是一個無聊的瀏覽按鈕)&中繼點擊實際輸入?

我的實際輸入其工作原理:

<input id="fileUpload" type="file" Runat="server" NAME="fileUpload"/> 
<asp:button id="btnSave" OnClick="bt1Clicked" 
       runat="server" Text="Upload File"></asp:button> 
<asp:label id="lblMessage" runat="server"></asp:label> 

我的風格的按鈕:

<a onclick="$(\'btnSave\').click(); return false;" href="#">test</a> 

回答

1

不知道你的瞄準但這應該工作

<a onclick="$('<%= btnSave.ClientID %>').click(); return false;" 
                href="#">test</a> 

爲什麼?因爲默認情況下,asp.net提供了控件自己的ID,它由ClientIdMode定義。又見System.Web.UI.Control.ClientID

在我的愚見,這將是一個整潔的解決方案:

<a id="btnRelay" href="#">test</a> 

把它掛與jQuery分開,所以你的代碼是不是與你的HTML錯位。

$('btnRelay').click(function(event){ 
    event.preventDefault(); 
    $('<%= btnSave.ClientID %>').click() 
} 
相關問題