1

当我使用隐藏字段上传图像时,我试图保留文本框的值,但是经过多次尝试后,我发布了这个问题,它总是刷新文本框并且我的文本框值刷新?

我的代码是,

var hv = $('#hidden1').val();
var img = document.getElementById("<%= Btn_Preview.ClientID%>");
img.click();       
$('TxtBxDesignation').val() = hv;

实际上,我在更改事件时调用此脚本,并在上传图像的同时调用预览按钮的 .click 事件来查看图像

<asp:FileUpload runat="server" ID="FU_Img" onchange="FU_Img_onchange(this);" /><br />
                                    <asp:Button ID="Btn_Preview" runat="server" Text="Preview" BorderColor="Transparent"
                                        BackColor="Transparent" OnClick="Btn_Preview_Click" />

但它对我不起作用,并且在图像上传时文本框刷新,如果我冻结这一行

"var img = document.getElementById("<%= Btn_Preview.ClientID%>");"

它工作顺利,但肯定没有 chnage 图像???

希望你的建议谢谢

4

3 回答 3

2

当一个文件被选中时,PostBackPostedFile属性被初始化为对象。由于HttpPostedFilehttp 请求不能保持状态,并且PostedFile被初始化为HttpPostedFile对象,因此它失去了它的状态。

保留状态的一种方法是将fileupload对象存储在session其中并在回传中从中获取值。在Page_Load.

if (Session["FileUpload1"] == null && FileUpload1.HasFile)  
    { 
        Session["FileUpload1"] = FileUpload1; 
        Label1.Text = FileUpload1.FileName; 
    } 

else if (Session["FileUpload1"] != null && (! FileUpload1.HasFile)) 
{ 
    FileUpload1 = (FileUpload) Session["FileUpload1"]; 
    Label1.Text = FileUpload1.FileName; 
} 

else if (FileUpload1.HasFile) 
{ 
    Session["FileUpload1"] = FileUpload1; 
    Label1.Text = FileUpload1.FileName; 
}

或者

您也可以为AsyncFileUpload基于 AJAX 的上传选择 AJAX 控件,它会保留路径。检查以下网址:

1.) http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AjaxFileUpload/AjaxFileUpload.aspx

2.) http://www.aspsnippets.com/Articles/Using-ASP.Net-AJAX-Control-Toolkits-AsyncFileUpload-Control.aspx

于 2013-08-29T10:18:53.070 回答
1

维护 ViewState

在 ASP 中提交表单时,会清除所有表单值。假设您提交了一个包含大量信息的表单,而服务器返回一个错误。您必须返回表格并更正信息。您单击后退按钮,会发生什么.......所有表单值都已清除,您将不得不重新开始!该站点没有维护您的 ViewState。

在 ASP .NET 中提交表单时,该表单与所有表单值一起重新出现在浏览器窗口中。怎么会?这是因为 ASP .NET 维护您的 ViewState。ViewState 指示页面在提交到服务器时的状态。状态是通过放置在每个页面上的隐藏字段和控件来定义的。维护 ViewState 是 ASP.NET Web 窗体的默认设置。如果要维护 ViewState,请包含该指令

      <%@ Page EnableViewState="true" %>

请访问这些VIEWSTATE以了解有关视图状态的更多信息

于 2013-08-29T10:09:06.223 回答
1

看看这个线程,了解一种用于跨回发维护状态的技术。

于 2013-08-29T10:16:45.463 回答