项目中引用了母版页,内容页中UpdatePanel中的按钮事件必须要点击两次才能执行,第一次点击无效,请问怎么解决这种问题

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-08-14 09:56:14 编辑
      

  2.   

    if(!Page.IsPostback)
    {}
    加上试下
      

  3.   

    求解释,怎么设置?直接把按钮放UpdatePanel中啊,还要怎么设置呢?
      

  4.   

    加哪里?引用页?母版页?Page_Load?还是事件中?
      

  5.   

    UpdatePanel UpdateMode="Conditional" 条件触发。试试
      

  6.   

     protected void cendCar_Click(object sender, EventArgs e)
            {
                if (addTocar())
                    Response.Write("<script language = javascript>alert('已加入购物车!');</script>");
                else
                    //ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "", "alert('对不起,您还没选择尺寸颜色!')", true);
                    Response.Write("<script language = javascript>alert('对不起,您还没选择尺寸颜色');</script>");
            }就是直接双击按钮生成的事件啊,要在哪里设置吗?
      

  7.   

    本帖最后由 net_lover 于 2012-08-14 10:52:17 编辑
      

  8.   

    本帖最后由 net_lover 于 2012-08-14 10:59:03 编辑
      

  9.   

    XmlHttp.readyState属性
    0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)  
    1 (初始化) 对象已建立,尚未调用send方法  
    2 (发送数据) send方法已调用,但是当前的状态及http头未知  
    3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,  
    4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据因为 xmlHttp.send(null)后,这时readyState为2,Reoponse还没有返回,但是你的程序send后已经调用popup(id) ,这时content是空,所以是undefinded; 然后等Reoponse返回后,contenty已经赋值了,但是这时也不再调用popup(id)了。所以就如你所看到的,第一次点没有反映,第二次才能看见。
      

  10.   


    <Triggers>  
      <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />  
    </Triggers>  
    试试
      

  11.   

    我是用的AJAX控件,麻烦针对我的问题说说解决方案。如果不用母版页,AJAX工作正常,加上母版页,就要点击第二次才能出发了
      

  12.   

    <Triggers>  
      <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />  
    </Triggers>  
    也没问题啊。我都亲自测试了<%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" MasterPageFile="~/MasterPage3.master" %><script runat="server">      protected void Button1_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "", "alert('对不起,您还没选择尺寸颜色!')", true);    }
    </script>
    <asp:Content ContentPlaceHolderID="ContentPlaceHolder1" ID="x" runat="server">
        <script type="text/javascript">
            alert("只弹出一次是AJAX,就对了");
        </script>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </asp:Content>
      

  13.   


    用ajax是这样写法,但第一次点击无效,就没用了。
      

  14.   

    UpdatePanel1本身就是ajax,你还还单独写ajax?那不是多余吗?
      

  15.   

    说说完整情况,代码太多,贴出来也难看,我的母版页用了几个用户控件,在内容页插入ScriptManager和UpdatePanel,大致这个样子
      

  16.   

    我用了<Triggers>  
      <asp:AsyncPostBackTrigger,点击无效啊
      

  17.   

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="buyNow"   EventName="Click" />
                        <asp:AsyncPostBackTrigger ControlID="cendCar"   EventName="Click" />
                        </Triggers>
                        </asp:UpdatePanel>
                        <asp:Button ID="buyNow" runat="server" Text="" CssClass="buyNow" 
                            onclick="buyNow_Click" />
                        <asp:Button ID="cendCar" runat="server"
                            Text="" CssClass="cendCar" onclick="cendCar_Click" />
      

  18.   

    在IE6中可以,在Chrome中就无法点击了