首页 新闻 会员 周边

关于自定义控件中的子控件button click事件触发的问题

0
悬赏园豆:15 [已关闭问题]

我现在碰到了一个问题,就是我在自定义控件中加载了一个子控件button 作为fileupload控件上传按钮,但我定义的button_click事件却不能触发,我知道不是顶级事件不能触发,在园子里也找到了用顶级事件来触发这个二级事件的方法,但那种方法不好,我想用代理的方式,请问大家有没有好的方法,谢谢了。

附上一段代码:

 protected void Button_fileUp_Click(object sender, EventArgs e)
        {
            bool fileOK = false;
            //string path =SeverPath+"/";
            if (FileUpload_newsFile .HasFile)
            {
                String fileExtension = System.IO.Path.GetExtension(FileUpload_newsFile.FileName).ToLower();
                String[] allowedExtensions = { ".gif", ".png", ".bmp", ".jpg" };
                for (int i = 0; i < allowedExtensions.Length; i++)
                {
                    if (fileExtension == allowedExtensions[i])
                    {
                        fileOK = true;
                    }
                }
            }
            if (fileOK)
            {
                try
                {
                    FileUpload_newsFile.SaveAs("D:\\image\\" + FileUpload_newsFile.FileName);
                }
                catch (Exception ex)
                {
                    throw ex ;
                }
            }
        }

还有一个问题就是fileupload控件指定的是绝对路径,我怎么改成相对路径

谢谢大家了!!!!

宪华的主页 宪华 | 初学一级 | 园豆:0
提问于:2009-09-04 08:24
< >
分享
其他回答(1)
0

这个应该是事件冒泡,你去查下自定义控件的事件冒泡

隔山打牛 | 园豆:87 (初学一级) | 2009-09-04 09:11
事件冒泡的方法我用过了,我想就是在我用自定义控件的时候,不用去特意的触发事件,让button的事件能自动就触发,有没有解决的办法,谢谢了!1
支持(0) 反对(0) 宪华 | 园豆:0 (初学一级) | 2009-09-04 09:27
0

先说你的路径问题。  

 string path=Server.MapPath(虚拟路径);//得到绝对路径。

  FileUpload_newsFile.SaveAs(path);

经过测试,我没有发现你说的事件问题,直接就通过了。应该是你的代码有问题。比如你的控件页面代码中绑定事件的字符错误。

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="Material_WebUserControl" %>
<asp:FileUpload ID="FileUpload_newsFile" runat="server" Width="295px" />
<asp:Button ID="button" runat="server" OnClick="Button1_Click" Text="上传" />

检查一下

 应该是没什么问题啊..可能是你的代码有问题吧..给你个例子。你可以下吧..这个是我写的一个控制gridview分页的自定义控件。里面封装了控制gridview的事件。

 

Code

 

邢少 | 园豆:10926 (专家六级) | 2009-09-04 09:48
我这个button_click是包含在自定义控件中的 也就是说我在使用自定义控件时加载了一个子控件button的click事件 想在使用控件的时候不用声明什么能直接使用
支持(0) 反对(0) 宪华 | 园豆:0 (初学一级) | 2009-09-04 09:59
@宪华:你是说自定义控件?不是用户控件是把?.如果是自定义控件的话..你只要绑定..button.Onclick+=事件..ok
支持(0) 反对(0) 邢少 | 园豆:10926 (专家六级) | 2009-09-04 10:15
@邢少:你的意图好像是在选择文件后自动触发上传事件是吧?..
支持(0) 反对(0) 邢少 | 园豆:10926 (专家六级) | 2009-09-04 10:17
对,是自定义控件,绑定了但是不触发。
支持(0) 反对(0) 宪华 | 园豆:0 (初学一级) | 2009-09-04 11:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册