0

我想为我的 ASP.NET FileUpload 控件打上烙印,由于无法做到 OOB,我选择只使用 javascript 复制它的功能。

我将“浏览”按钮onclick事件附加到我的按钮并使用event.preventDefault()它按预期工作。但我还有另外 2 个按钮;保存、删除,这些都是普通的 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 事件,而不是它存在于函数中的事件,但没有运气。

任何人都可以启发我吗?

4

1 回答 1

0
event.preventDefault();   // Cancels the postback  ...
$('#<%=ProfilePictureUpload.ClientID%>').click(); 

// 这是一个客户端事件。

OnClick="ProfilePictureUploadButton_Click"  // This is server side event

所以这里的客户端.click()事件和Onclick 服务端事件是不一样的。。

因为您正在使用preventDefault停止回发,所以服务器端事件显然不会触发......

要触发服务器端事件,您可以使用__doPostback() 或删除该preventDefault()方法..

于 2012-10-15T07:44:04.120 回答