我想品牌我的ASP.NET FileUpload控件,由于无法完成OOB,我选择只使用javascript复制它的功能。
我将“浏览”按钮onclick
事件附加到我的按钮,然后使用符合预期效果的event.preventDefault()
。但我还有另外两个按钮;保存,删除,这是正常的asp.net按钮。在我的“自定义”浏览按钮上触发onclick
事件后,其他两个按钮onclick
事件将不会触发。
[使用Javascript]
$(document).ready(function () {
// The "custom" browse button.
$('#<%=ProfilePictureBrowsePicture.ClientID%>').click(function (event) {
event.preventDefault();
$('#<%=ProfilePictureUpload.ClientID%>').click();
});
// the "custom" fileupload box to display the selected image path.
$('#<%=ProfilePictureUpload.ClientID%>').change(function () {
$('#<%=ProfilePictureShowFile.ClientID%>').val($(this).val());
});
});
[HTML]
<asp:FileUpload ID="ProfilePictureUpload" CssClass="filename" runat="server" />
<asp:TextBox ID="ProfilePictureShowFile" CssClass="fba-txtBox showSelectedFile" runat="server" /><br />
<asp:Button ID="ProfilePictureBrowsePicture" CssClass="btnYellow" runat="server" Text="Gennemse" ToolTip="Gennemse billede" />
<asp:Button ID="ProfilePictureUploadButton" CssClass="btnYellow" runat="server" Text="Gem" ToolTip="Gem billede" OnClick="ProfilePictureUploadButton_Click" />
<asp:Button ID="ProfilePictureDeleteButton" CssClass="btnYellow" runat="server" Text="Slet" ToolTip="Slet billede" OnClick="ProfilePictureDeleteButton_Click" EnableViewState="false" />
如果event.preventDefault()
影响onclick事件而不是函数中存在的事件,我尝试使用Google搜索,但没有运气。
任何人都可以启发我吗?
答案 0 :(得分:0)
event.preventDefault(); // Cancels the postback ...
$('#<%=ProfilePictureUpload.ClientID%>').click();
//这是一个客户端事件。
OnClick="ProfilePictureUploadButton_Click" // This is server side event
所以此处的客户端 .click()事件与 Onclick服务器事件不同。
因为您使用 preventDefault 停止回发,服务器端事件显然不会触发......
要触发服务器端事件,您使用__doPostback()
或删除preventDefault()
方法..