我必须首先预览图像,然后将其保存到DB。在多次尝试隐藏“Ajax fileUpload控件的文本框”之后,我决定使用这个简单的建议 - 使用html fileupload控件,隐藏它,但使用asp按钮来调用html控件。一切都好,直到现在。
ASPX:
<asp:Panel ID="pnlImage" runat="server" Height="120px" Width="120px">
<asp:Image ID="imageBox" runat="server"/>
</asp:Panel>
<input type="file" id="selectedFile" name="_selectedFile"/> //will hide this later
<asp:Button ID="btnBrowse" runat="server" Text="Browse" CausesValidation="false"
OnClientClick="document.getElementById('selectedFile').click(); return false;"
onclick="btnBrowse_Click" />
CS:
protected void btnBrowse_Click(object sender, EventArgs e)
{
string strValue = Page.Request.Form["_selectedFile"].ToString();
}
当我点击浏览按钮时,弹出窗口浏览文件。选择图片后,本地路径“C:\ pictures .....”填入Html控件的文本框。
但问题在于,它不会转到后面的代码(因为return:false)。 如果我说return:true,它确实如此,但本地路径只是闪烁并消失 文本框。所以strValue是空的。 !
我也试过,设置causevalidation&amp;回归真实。为此,我必须填写所有其他reqd。页面上的字段。虽然它是代码behid,但strValue只有名称(user1.jpg)而不是路径。
我觉得这个方法比其他javascript / jquery简单。我该如何从这里开始。
答案 0 :(得分:0)
当您返回false时,肯定按钮不会单击,当您返回true时,按钮会单击,但客户端输入控件的值将丢失。看看这个: Retaining Control/Elements values changed via Client side on postbacks
答案 1 :(得分:0)
看看这个Previewing Image in ASP NET Image Control using Cs ...这是提供图像预览功能的一种非常简洁的方法。