none
求助,在页面上添加多个AjaxControlToolkit控件后Button的OnClick事件失效了? RRS feed

  • 问题

  • 运行视图


    如图所示,在这个页面上有四个添加的LinkButton点击后都会弹出一个Panel,点击Panel中的添加Button后会在数据库中插入一条记录

    我在制作的时候没做一个LinkButton和Panel后都会测试功能,但当做到第四个(颜色的)添加LinkButton后,不也所有的Button按钮的OnClick事件全部失效了

    失效的按钮时四个Panel中的添加Button和一个入库的Button按钮的OnClick时间,点击按钮没有任何反应,在Debug模式下也无法进入断点调试


    站点的源文件点击进入下载

    前台页面
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="purchase.aspx.cs" Inherits="purchase" %>
    
    
    
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
    
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    
    <head id="Head1" runat="server">
    
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    
        <title>新品入库 - 水煮时尚_出入库系统</title>
    
    <style type="text/css">
    
    <!--
    
    @import "BoiledFashion.css";
    
    -->
    
    </style>
    
    </head>
    
    <body>
    
    <div id="main">
    
        <form id="Form1" action="#" method="get" runat="server">
    
            <asp:ScriptManager ID="ScriptManager1" runat="server" />
    
            <div id="title">新品入库</div>
    
            <div class="halfline">名称: <asp:TextBox ID="name" runat="server" />
    
            <asp:RequiredFieldValidator ID="Validator_name" runat="server" ErrorMessage="名称不能为空" ControlToValidate="name" /></div>
    
            
    
            <div class="halfline-left">品牌:<asp:DropDownList ID="brand" runat="server" />
    
            <asp:LinkButton ID="add_brand" runat="server" Text="添加" /></div>
    
                
    
    		<div class="halfline-right">种类:<asp:DropDownList ID="item" runat="server" />
    
                <asp:LinkButton ID="add_item" runat="server" Text="添加" /></div>
    
    
    
                
    
    		<div class="halfline-left">尺码:<asp:DropDownList ID="size" runat="server" />
    
                 <asp:LinkButton ID="add_size" runat="server" Text="添加" /></div>
    
                
    
    		<div class="halfline-right">颜色:<asp:DropDownList ID="color" runat="server" />
    
                 <asp:LinkButton ID="add_color" runat="server" Text="添加" /></div>
    
                
    
    		<div class="halfline-left">成本:<asp:TextBox ID="price" runat="server" />
    
    		<asp:RequiredFieldValidator ID="Validator_price" runat="server" ErrorMessage="成本不能为空" ControlToValidate="price" /></div>
    
    		
    
    		<div class="halfline-right">数量:<asp:TextBox ID="quantity" runat="server" />
    
    		<asp:RequiredFieldValidator ID="Validator_quantity" runat="server" ErrorMessage="数量不能为空" ControlToValidate="quantity" /></div>
    
    		
    
    		<div class="halfline-left">图片1:<asp:FileUpload ID="up_pic1" runat="server" />
    
    		<asp:RequiredFieldValidator ID="Validator_up_pic1" runat="server" ErrorMessage="图片1必须上传" ControlToValidate="up_pic1" /></div>
    
    		
    
    		<div class="halfline-right">图片2:<asp:FileUpload ID="up_pic2" runat="server" />
    
    		<asp:RequiredFieldValidator ID="Validator_up_pic2" runat="server" ErrorMessage="图片2必须上传" ControlToValidate="up_pic2" /></div><br />
    
    		
    
    		<div class="halfline"><asp:Button ID="goods_purchase" runat="server" Text="入库" OnClick="goods_purchase_Click" /></div>
    
            
    
            <asp:Panel ID="panel_brand" runat="server" Height="50px" Width="125px">
    
                品牌名称:<asp:TextBox ID="add_brand_name" runat="server" /><asp:RequiredFieldValidator ID="Validator_add_brand_name" runat="server" ErrorMessage="品牌名称不能为空" ControlToValidate="add_brand_name" />
    
                品牌代码:<asp:TextBox ID="add_brand_id" runat="server" MaxLength="2" /><asp:RequiredFieldValidator ID="Validator_add_brand_id" runat="server" ErrorMessage="品牌代码不能为空" ControlToValidate="add_brand_id" />
    
                <asp:Button ID="panel_add_brand" runat="server" Text="添加" OnClick="panel_add_brand_Click" />
    
                <asp:Button ID="panel_brand_close" runat="server" Text="关闭" />
    
            </asp:Panel>
    
            <cc1:modalpopupextender id="ModalPopup_brand" runat="server" TargetControlID="add_brand" PopupControlID="panel_brand"
    
                BackgroundCssClass="modalBackground" OkControlID="panel_brand_close" />
    
                
    
            <asp:Panel ID="panel_item" runat="server" Height="50px" Width="125px">
    
                种类名称:<asp:TextBox ID="add_item_name" runat="server" /><asp:RequiredFieldValidator ID="Validatoradd_item_name" runat="server" ErrorMessage="种类名称不能为空" ControlToValidate="add_item_name" />
    
                种类代码:<asp:TextBox ID="add_item_id" runat="server" MaxLength="2" /><asp:RequiredFieldValidator ID="Validator_add_item_id" runat="server" ErrorMessage="种类代码不能为空" ControlToValidate="add_item_id" />
    
                <asp:Button ID="panel_add_item" runat="server" Text="添加" OnClick="panel_add_item_Click" />
    
                <asp:Button ID="panel_item_close" runat="server" Text="关闭" />
    
            </asp:Panel>
    
            <cc1:modalpopupextender id="ModalPopup_item" runat="server" TargetControlID="add_item" PopupControlID="panel_item"
    
                BackgroundCssClass="modalBackground" OkControlID="panel_item_close" />
    
                
    
            <asp:Panel ID="panel_size" runat="server" Height="50px" Width="125px">
    
                尺码名称:<asp:TextBox ID="add_size_name" runat="server" /><asp:RequiredFieldValidator ID="Validator_add_size_name" runat="server" ErrorMessage="尺码名称不能为空" ControlToValidate="add_size_name" />
    
                尺码代码:<asp:TextBox ID="add_size_id" runat="server" MaxLength="2" /><asp:RequiredFieldValidator ID="Validator_add_size_id" runat="server" ErrorMessage="尺码代码不能为空" ControlToValidate="add_size_id" />
    
                <asp:Button ID="panel_add_size" runat="server" Text="添加" OnClick="panel_add_size_Click" />
    
                <asp:Button ID="panel_size_close" runat="server" Text="关闭" />
    
            </asp:Panel>
    
            <cc1:modalpopupextender id="ModalPopup_size" runat="server" TargetControlID="add_size" PopupControlID="panel_size"
    
                BackgroundCssClass="modalBackground" OkControlID="panel_size_close" />
    
                
    
            <asp:Panel ID="panel_color" runat="server" Height="50px" Width="125px">
    
                颜色名称:<asp:TextBox ID="add_color_name" runat="server" /><asp:RequiredFieldValidator ID="Validator_add_color_name" runat="server" ErrorMessage="颜色名称不能为空" ControlToValidate="add_color_name" />
    
                颜色代码:<asp:TextBox ID="add_color_id" runat="server" MaxLength="2" /><asp:RequiredFieldValidator ID="Validator_add_color_id" runat="server" ErrorMessage="颜色代码不能为空" ControlToValidate="add_color_id" />
    
                <asp:Button ID="panel_add_color" runat="server" Text="添加" OnClick="panel_add_color_Click" />
    
                <asp:Button ID="panel_color_close" runat="server" Text="关闭" />
    
            </asp:Panel>
    
            <cc1:modalpopupextender id="ModalPopup_color" runat="server" TargetControlID="add_color" PopupControlID="panel_color"
    
                BackgroundCssClass="modalBackground" OkControlID="panel_color_close" />
    
        </form>
    
    </div>
    
    </body>
    
    </html>
    
    


    后台代码
    using System;
    
    using System.Data;
    
    using System.Configuration;
    
    using System.Collections;
    
    using System.Web;
    
    using System.Web.Security;
    
    using System.Web.UI;
    
    using System.Web.UI.WebControls;
    
    using System.Web.UI.WebControls.WebParts;
    
    using System.Web.UI.HtmlControls;
    
    
    
    public partial class purchase : System.Web.UI.Page
    
    {
    
        protected void Page_Load(object sender, EventArgs e)
    
        {
    
            if (!Page.IsPostBack)
    
            {
    
                //if (Session["USER_NAME"] == null || Session["USER_NAME"].ToString().Trim().Length == 0)
    
                //{
    
                //    Response.Write("<script>alert('您还没有登陆!');</script>");
    
                //    Response.Redirect("default.aspx");
    
                //}
    
                brand.Items.Clear();
    
                brand.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[BRAND]"));
    
                item.Items.Clear();
    
                item.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[ITEM]"));
    
                size.Items.Clear();
    
                size.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[SIZE]"));
    
                color.Items.Clear();
    
                color.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[COLOR]"));
    
            }
    
    
    
        }
    
    
    
        protected void goods_purchase_Click(object sender, EventArgs e)
    
        {
    
            /*上传文件*/
    
            if (up_pic1.HasFile && up_pic2.HasFile)
    
            {
    
                String pic1Extension = System.IO.Path.GetExtension(up_pic1.FileName);
    
                String pic2Extension = System.IO.Path.GetExtension(up_pic2.FileName);
    
                if (!(pic1Extension.ToLower() == ".jpg" || pic1Extension.ToLower() == ".jpeg" || pic1Extension.ToLower() == ".png" || pic1Extension.ToLower() == ".gif" || pic1Extension.ToLower() == ".bmp"))
    
                {
    
                    Response.Write("<script>alert('请上传JPG、JPEG、PNG、GIF、BMP格式的图片!');</script>");
    
                    return;
    
                }
    
                if (!(pic2Extension.ToLower() == ".jpg" || pic2Extension.ToLower() == ".jpeg" || pic2Extension.ToLower() == ".png" || pic2Extension.ToLower() == ".gif" || pic2Extension.ToLower() == ".bmp"))
    
                {
    
                    Response.Write("<script>alert('请上传JPG、JPEG、PNG、GIF、BMP格式的图片!');</script>");
    
                    return;
    
                }
    
    
    
                HttpFileCollection uploadedFiles = Request.Files;
    
                for (int i = 0; i < uploadedFiles.Count; i++)
    
                {
    
                    HttpPostedFile userPostedFile = uploadedFiles[i];
    
                    try
    
                    {
    
                        if (userPostedFile.ContentLength > 0)
    
                        {
    
                            userPostedFile.SaveAs(Server.MapPath(".") + "\\taobaopic\\goods\\" + System.IO.Path.GetFileName(userPostedFile.FileName));
    
                        }
    
                    }
    
                    catch (Exception)
    
                    {
    
                        Response.Write("<script>alert('图片上传失败\\n请联系管理员!');</script>");
    
                        return;
    
                    }
    
                }
    
                Response.Write("<script>alert('所有图片已上传成功!');</script>");
    
            }
    
            else
    
            {
    
                Response.Write("<script>alert('要上传的文件不存在!');</script>");
    
                return;
    
            }
    
    
    
            /*插入数据库*/
    
            String goods_name = this.name.Text.ToString().Trim();
    
            String goods_brand = this.brand.SelectedValue.ToString().Trim();
    
            String goods_item = this.item.SelectedValue.ToString().Trim();
    
            String goods_size = this.size.SelectedValue.ToString().Trim();
    
            String goods_color = this.color.SelectedValue.ToString().Trim();
    
            String goods_price = this.price.Text.ToString().Trim();
    
            String goods_quantity = this.quantity.Text.ToString().Trim();
    
    
    
            int result = new GoodsAction().Purchase(goods_name, goods_brand, goods_item, goods_size, goods_color, goods_price, goods_quantity);
    
    
    
            if (result == 1)
    
            {
    
                Response.Write("<script>alert('入库成功!');</script>");
    
                this.name.Text = "";
    
                this.brand.Items[0].Selected = true;
    
                this.item.Items[0].Selected = true;
    
                this.size.Items[0].Selected = true;
    
                this.color.Items[0].Selected = true;
    
                this.price.Text = "";
    
                this.quantity.Text = "";
    
                return;
    
            }
    
            if (result == 2)
    
            {
    
                Response.Write("<script>alert('商品名已存在!');</script>");
    
                this.name.Focus();
    
                return;
    
            }
    
            if (result == 0)
    
            {
    
                Response.Write("<script>alert('入库失败!\\n请联系管理员。');</script>");
    
                return;
    
            }
    
        }
    
    
    
        protected void panel_add_brand_Click(object sender, EventArgs e)
    
        {
    
            String brand_name = add_brand_name.Text.ToString().Trim();
    
            String brand_id = add_brand_id.Text.ToString().Trim();
    
    
    
            int result = new GoodsAction().AddOutKey("brand", brand_id, brand_name);
    
    
    
            if (result == 21)
    
            {
    
                Response.Write("<script>alert('品牌代码已存在!');</script>");
    
                add_brand_id.Focus();
    
                return;
    
            }
    
    
    
            if (result == 22)
    
            {
    
                Response.Write("<script>alert('品牌名称已存在!');</script>");
    
                add_brand_name.Focus();
    
                return;
    
            }
    
    
    
            if (result == 1)
    
            {
    
                Response.Write("<script>alert('添加品牌成功!');</script>");
    
                brand.Items.Clear();
    
                brand.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[BRAND]"));
    
            }
    
            else
    
            {
    
                Response.Write("<script>alert('添加品牌失败!\\n请联系管理员。');</script>");
    
                return;
    
            }
    
        }
    
    
    
        protected void panel_add_item_Click(object sender, EventArgs e)
    
        {
    
            String item_name = add_item_name.Text.ToString().Trim();
    
            String item_id = add_item_id.Text.ToString().Trim();
    
    
    
            int result = new GoodsAction().AddOutKey("item", item_id, item_name);
    
    
    
            if (result == 21)
    
            {
    
                Response.Write("<script>alert('种类代码已存在!');</script>");
    
                add_item_id.Focus();
    
                return;
    
            }
    
    
    
            if (result == 22)
    
            {
    
                Response.Write("<script>alert('种类名称已存在!');</script>");
    
                add_item_name.Focus();
    
                return;
    
            }
    
    
    
            if (result == 1)
    
            {
    
                Response.Write("<script>alert('添加种类成功!');</script>");
    
                item.Items.Clear();
    
                item.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[ITEM]"));
    
            }
    
            else
    
            {
    
                Response.Write("<script>alert('添加种类失败!\\n请联系管理员。');</script>");
    
                return;
    
            }
    
        }
    
    
    
        protected void panel_add_size_Click(object sender, EventArgs e)
    
        {
    
            String size_name = add_size_name.Text.ToString().Trim();
    
            String size_id = add_size_id.Text.ToString().Trim();
    
    
    
            int result = new GoodsAction().AddOutKey("size", size_id, size_name);
    
    
    
            if (result == 21)
    
            {
    
                Response.Write("<script>alert('尺码代码已存在!');</script>");
    
                add_size_id.Focus();
    
                return;
    
            }
    
    
    
            if (result == 22)
    
            {
    
                Response.Write("<script>alert('尺码名称已存在!');</script>");
    
                add_size_name.Focus();
    
                return;
    
            }
    
    
    
            if (result == 1)
    
            {
    
                Response.Write("<script>alert('添加尺码成功!');</script>");
    
                size.Items.Clear();
    
                size.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[SIZE]"));
    
            }
    
            else
    
            {
    
                Response.Write("<script>alert('添加尺码失败!\\n请联系管理员。');</script>");
    
                return;
    
            }
    
        }
    
    
    
        protected void panel_add_color_Click(object sender, EventArgs e)
    
        {
    
            String color_name = add_color_name.Text.ToString().Trim();
    
            String color_id = add_brand_name.Text.ToString().Trim();
    
    
    
            int result = new GoodsAction().AddOutKey("color", color_id, color_name);
    
    
    
            if (result == 21)
    
            {
    
                Response.Write("<script>alert('颜色代码已存在!');</script>");
    
                add_color_id.Focus();
    
                return;
    
            }
    
    
    
            if (result == 22)
    
            {
    
                Response.Write("<script>alert('颜色名称已存在!');</script>");
    
                add_color_name.Focus();
    
                return;
    
            }
    
    
    
            if (result == 1)
    
            {
    
                Response.Write("<script>alert('添加颜色成功!');</script>");
    
                color.Items.Clear();
    
                color.Items.AddRange(new GoodsAction().SearchOutKeyInfo("[COLOR]"));
    
            }
    
            else
    
            {
    
                Response.Write("<script>alert('添加颜色失败!\\n请联系管理员。');</script>");
    
                return;
    
            }
    
        }
    
    }
    
    
    
    


    富磊
    富磊
    2009年5月30日 0:29

答案

  • 我找到原因了
    是应为页面上有很多的RequiredFieldValidator,当点击按钮时,由于RequiredFieldValidator控件的校验没有通过所以没有调用事件。
    当我将RequiredFieldValidator 控件全部删除后就可以正常使用了。
    想问想有没有什么办法能够实现
    富磊
    • 已建议为答案 韦恩卑鄙 waywa 2009年5月31日 2:27
    • 已标记为答案 KeFang Chen 2009年5月31日 2:58
    • 取消答案标记 富磊 2009年6月1日 0:29
    • 已标记为答案 富磊 2009年6月1日 0:29
    2009年5月30日 14:50

全部回复

  • 打开Trace看看吧,这样的问题通常都是因为ClientID错乱造成的。
    Microsoft ASP.NET MVP
    2009年5月30日 3:55
    版主
  • Debug模式调试吗?
    在调试模式中如何才看查看ClientID呢?

    能说的明白一点吗?不是很清楚您说的东西。谢谢!
    富磊
    2009年5月30日 14:25
  • 我找到原因了
    是应为页面上有很多的RequiredFieldValidator,当点击按钮时,由于RequiredFieldValidator控件的校验没有通过所以没有调用事件。
    当我将RequiredFieldValidator 控件全部删除后就可以正常使用了。
    想问想有没有什么办法能够实现
    富磊
    • 已建议为答案 韦恩卑鄙 waywa 2009年5月31日 2:27
    • 已标记为答案 KeFang Chen 2009年5月31日 2:58
    • 取消答案标记 富磊 2009年6月1日 0:29
    • 已标记为答案 富磊 2009年6月1日 0:29
    2009年5月30日 14:50
  • ajax control toolkits 里面有专门的ajax验证控件  目前已经是m$的正式release了  还请下载后选用


    紫柔版主的头像真叫萌得一个不行啊。。。。
    2009年5月31日 2:30
  • 我找到原因了
    是应为页面上有很多的RequiredFieldValidator,当点击按钮时,由于RequiredFieldValidator控件的校验没有通过所以没有调用事件。
    当我将RequiredFieldValidator 控件全部删除后就可以正常使用了。
    想问想有没有什么办法能够实现
    富磊
    其实RequiredFieldValidator不会阻碍AJAX控件的,你应该在微软那下载最新的ASP.NET AJAX控件或者直接用3.5的版本。

    或者直接就是你的代码中写错了,一般来说我用的时候都不会产生这种情况的。。

    低调,低调
    哈哈,书出了,可以点这里购买哦。。
    2009年5月31日 2:32
    版主