随笔-37  评论-155  文章-1  trackbacks-3

曾在开发ATLAS时候,想用UpdatePanel (UP)来上传文件,但是没有想到FileUpload (FU)控件不能在UP里使用,这里有个小技巧,可以让你的FU控件在UP里面起做用. 来看代码:

HTML:

    <div>
        
<atlas:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
        
</atlas:ScriptManager>
        
<atlas:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="cmdButton1" runat="server"
                    Text
="Upload" /><asp:Label ID="Label1" runat="server" Text=""></asp:Label>
            
</ContentTemplate>
        
</atlas:UpdatePanel>
   
        
<asp:Button ID="cmdButton2" OnClick="cmdButton2_click"  runat="server" Text="Full post back" /> 
        
</div>

CODE BEHIND:
    Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load

        
Me.cmdButton1.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(Me.cmdButton2, ""))

    
End Sub


    
Protected Sub cmdButton2_Click(ByVal sender As ObjectByVal e As System.EventArgs)
        
If Me.FileUpload1.HasFile Then
            System.Threading.Thread.Sleep(
1000)
            
Me.Label1.Text = Me.FileUpload1.FileName
        
End If
    
End Sub


这样的话,当你在点击UP里面的UPLOAD按钮时,整个页面就会回传,当然你的可以找到你FU控件里面的文件,所以上传文件是没问题. OK~

后来考虑到界面问题,想把button2按钮给隐藏掉,然后设置button2的visible的属性为false.运行是却出现了如下的错误:
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
把button2的visible的属性重新该为true,问题就不在重新出现,现在对此不能理解
麻烦知道的朋友告诉一声.谢谢!!!
posted on 2007-03-22 11:37 Edwin dong 阅读(896) 评论(3)  编辑 收藏 网摘

评论:
#1楼  2007-04-27 18:52 | zzw [未注册用户]
看了你这个技巧也帮了我一个忙,我也正好遇到这个问题.在这里表示感谢.
你所说的要将button2隐藏了,就出错,是有那么一回事,但还可以用另一种方式来达到隐藏的效果,设置button2的width=0也可以达到那种效果,且不会出现你所说的那种错误提示
  回复  引用    
#2楼  2007-07-20 00:46 | 吴碧宇      
你这样..整个页都会被回传,这样..整个页面都个刷新..那样和把cmdButton1放在UpDataPanel外不是没有区别...
而且..要达到你这样效果..更本不用这样..只需设置
<Triggers>
<asp:PostBackTrigger ControlID="cmdButton1" />
</Triggers>
就OK了..
  回复  引用  查看    
#3楼  2007-11-25 00:29 | wesele [未注册用户]
WebControl不能设置Visible,否则不输出。一般设置Style:display:none
  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: