我用一个TextBox 和 button 模仿FileUpload控件,
实现方法如下:
1,FileUpload空件隐藏,button 点击时候,用javascript调用FileUpload控件的click方法,
2,并且文件路径的值赋给TextBox 前面都正常实现了,但是上面的处理完了以后
点击另外的asp:Button 想做处理,但是第一次点击时候走不到服务器端代码
而且把FileUpload的内容给我清空了,第二次点击的时候才会正常走服务器端代码,
为什么?
页面代码:
<%@ Page Language="C#" MasterPageFile="~/Common/GlobalMasterPage.master" AutoEventWireup="true"
CodeBehind="upload.aspx.cs" Inherits="Disco.DWare3.BT_Navi.BT02.upload" Title="测试" %><asp:Content ID="Content1" ContentPlaceHolderID="GlobalHeadPlaceHolder" runat="server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="GlobalContentPlaceHolder" runat="server">
<script language="javascript" type="text/javascript">
function fileUP()
{
var file = document.getElementById("<%=fileuploadImage.ClientID %>");
file.style.display="inline";
file.click();
//document.getElementById("<%=txtFile.ClientID %>").value = file.value;
//self.window.
//document.
return;
}
function fileSet()
{
var file = document.getElementById("<%=fileuploadImage.ClientID %>");
if(file.value !="")
{
document.getElementById("<%=txtFile.ClientID %>").value = file.value;
}
file.vi
//file.style.display="none";
return;
} </script> <table width="700px">
<tr>
<td id="imageTitle" bgcolor="#99CCFF" style="width: 30%" rowspan="3">
画像
</td>
<td style="width: 70%">
<asp:CheckBox ID="imageDel" runat="server" Text="画像消除" />
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtFile" runat="server" ></asp:TextBox>
<input id="btnFile" type="button" value="参照..." onclick="javascript:return fileUP();" /> <asp:FileUpload ID="fileuploadImage" runat="server" Style ="display:none"/>
</td>
</tr>
<tr>
<td>
<asp:Panel ID="ImageBox" runat="server">
<asp:TextBox ID="txtImage" runat="server" Enabled="False"></asp:TextBox>
<asp:Button ID="btnImage" runat="server" Text="画像选择" Width="148px" onClick="btnImage_Click"/>
<asp:Button ID="btnImageClear" runat="server" Text="选择解除" />
</asp:Panel>
</td>
</tr>
</table>
</asp:Content>
后台代码:
namespace Disco.DWare3.BT_Navi.BT02
{
/// <summary>
///
/// </summary>
public partial class upload : System.Web.UI.Page
{
/// <summary>
/// 画像名
/// </summary>
protected string FileName = string.Empty;
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
FileName = txtFile.Text;
this.fileuploadImage.Attributes.Add("onchange", "javascript:return fileSet();");
txtFile.Attributes.Add("readonly", "readonly");
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImage_Click(object sender, EventArgs e)
{
this.txtFile.Text = FileName; //a = "";
}
}
}
实现方法如下:
1,FileUpload空件隐藏,button 点击时候,用javascript调用FileUpload控件的click方法,
2,并且文件路径的值赋给TextBox 前面都正常实现了,但是上面的处理完了以后
点击另外的asp:Button 想做处理,但是第一次点击时候走不到服务器端代码
而且把FileUpload的内容给我清空了,第二次点击的时候才会正常走服务器端代码,
为什么?
页面代码:
<%@ Page Language="C#" MasterPageFile="~/Common/GlobalMasterPage.master" AutoEventWireup="true"
CodeBehind="upload.aspx.cs" Inherits="Disco.DWare3.BT_Navi.BT02.upload" Title="测试" %><asp:Content ID="Content1" ContentPlaceHolderID="GlobalHeadPlaceHolder" runat="server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="GlobalContentPlaceHolder" runat="server">
<script language="javascript" type="text/javascript">
function fileUP()
{
var file = document.getElementById("<%=fileuploadImage.ClientID %>");
file.style.display="inline";
file.click();
//document.getElementById("<%=txtFile.ClientID %>").value = file.value;
//self.window.
//document.
return;
}
function fileSet()
{
var file = document.getElementById("<%=fileuploadImage.ClientID %>");
if(file.value !="")
{
document.getElementById("<%=txtFile.ClientID %>").value = file.value;
}
file.vi
//file.style.display="none";
return;
} </script> <table width="700px">
<tr>
<td id="imageTitle" bgcolor="#99CCFF" style="width: 30%" rowspan="3">
画像
</td>
<td style="width: 70%">
<asp:CheckBox ID="imageDel" runat="server" Text="画像消除" />
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtFile" runat="server" ></asp:TextBox>
<input id="btnFile" type="button" value="参照..." onclick="javascript:return fileUP();" /> <asp:FileUpload ID="fileuploadImage" runat="server" Style ="display:none"/>
</td>
</tr>
<tr>
<td>
<asp:Panel ID="ImageBox" runat="server">
<asp:TextBox ID="txtImage" runat="server" Enabled="False"></asp:TextBox>
<asp:Button ID="btnImage" runat="server" Text="画像选择" Width="148px" onClick="btnImage_Click"/>
<asp:Button ID="btnImageClear" runat="server" Text="选择解除" />
</asp:Panel>
</td>
</tr>
</table>
</asp:Content>
后台代码:
namespace Disco.DWare3.BT_Navi.BT02
{
/// <summary>
///
/// </summary>
public partial class upload : System.Web.UI.Page
{
/// <summary>
/// 画像名
/// </summary>
protected string FileName = string.Empty;
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
FileName = txtFile.Text;
this.fileuploadImage.Attributes.Add("onchange", "javascript:return fileSet();");
txtFile.Attributes.Add("readonly", "readonly");
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImage_Click(object sender, EventArgs e)
{
this.txtFile.Text = FileName; //a = "";
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货