asp.net 中服务器控件的服务器事件和客户端事件顺序?
我有一个上传的butto为服务器端控件,但它有onclientclick和onclick事件,
在onclientclick事件中我是判断一个“名称”的文本框是否为空的方法,为空就提示,不为空就把fileupload控件所选择的文件名称显示在页面的特定位置。
在onclick事件中执行操作的前提是fileupload控件有值,有值就保存该文件到指定目录,否则提示没有选择文件。
我想问的是执行onclientclick事件后会刷新页面么?因为我在执行这个操作的时候在我先选择了文件点击上传按钮时提示“名称”为空,我填写名称后点击上传按钮可以保存,但有的时候执行相同的操作就会出现“没有选择文件”的提示,可是在我写名称前是选择了文件的。
代码:
//名称文本框
asp:TextBox ID="tbTaskName" runat="server" Text="" Visible="true" Width="533px"></asp:TextBox>
<font style="color: #FED000">(必填)<br /></font>
//fileupload和上传按钮
<asp:FileUpload ID="fuMainFile" runat="server" Width="526px" />
<asp:Button ID="btnUploadMainFile" runat="server" Text="上传主文件" OnClientClick ="showFile()" OnClick="btnUploadMainFile_Click" /><br />
//上传按钮的js代码
<script language="javascript" type="text/javascript">
//用户点击上载主文件按钮时显示文件名称和进度条
function showFile()
{
if(document.getElementById("tbTaskName").value != "")
{
var fname =document.getElementById("fuMainFile").value;
fname = fname.substring(fname.lastIndexOf('\\') + 1);
document.getElementById("lbmainfileMsg").innerHTML += '<div>'
+ fname + ' '
+'<img src="../images/loading.gif" align="absmiddle" />'
+ '</div>';
}
else
{
alert("素材名称为空,请填写素材名称!");
return false;
}
}
</script>
//服务器端事件
if (this.fuMainFile.HasFile == true)
{
string saveMF = this.SaveMainFileToTemp();
}
else
{
this.lbmainfileMsg.Text = "请先选择文件,再上传文件!";
}