母版页内容页用AJAX要点击两次才能执行 项目中引用了母版页,内容页中UpdatePanel中的按钮事件必须要点击两次才能执行,第一次点击无效,请问怎么解决这种问题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 net_lover 于 2012-08-14 09:56:14 编辑 if(!Page.IsPostback){}加上试下 求解释,怎么设置?直接把按钮放UpdatePanel中啊,还要怎么设置呢? 加哪里?引用页?母版页?Page_Load?还是事件中? UpdatePanel UpdateMode="Conditional" 条件触发。试试 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>"); }就是直接双击按钮生成的事件啊,要在哪里设置吗? 本帖最后由 net_lover 于 2012-08-14 10:52:17 编辑 本帖最后由 net_lover 于 2012-08-14 10:59:03 编辑 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)了。所以就如你所看到的,第一次点没有反映,第二次才能看见。 <Triggers> <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /> </Triggers> 试试 我是用的AJAX控件,麻烦针对我的问题说说解决方案。如果不用母版页,AJAX工作正常,加上母版页,就要点击第二次才能出发了 <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> 用ajax是这样写法,但第一次点击无效,就没用了。 UpdatePanel1本身就是ajax,你还还单独写ajax?那不是多余吗? 说说完整情况,代码太多,贴出来也难看,我的母版页用了几个用户控件,在内容页插入ScriptManager和UpdatePanel,大致这个样子 我用了<Triggers> <asp:AsyncPostBackTrigger,点击无效啊 <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" /> 在IE6中可以,在Chrome中就无法点击了 JS判断浏览器类型(IE或360或腾讯TT等IE内核的浏览器) 问问大家没有项目的时间都作什么,顺便散分 public abstract class AbstractNHibernateDao<T, IdT> : IDao<T, IdT> 里(<T, IdT> ) 是什么意思 在网页中如果为.mmf格式的音乐做试听 Asp.net中Session、Request、Context、PostBack等究竟是什么概念? .net 中怎么把文本转成SQL binary类型 .net中如何实现获取一个文件的md5校验码 真么做网站修改密码这部分 datagrid点击任意位置整行选中,选中行的模板列(imagebutton)显示. ios 内购 服务器二次验证 要asp.net WCF调用EF(Database First)出错。 如何将二进制文件从数据库读取出来?
{}
加上试下
{
if (addTocar())
Response.Write("<script language = javascript>alert('已加入购物车!');</script>");
else
//ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "", "alert('对不起,您还没选择尺寸颜色!')", true);
Response.Write("<script language = javascript>alert('对不起,您还没选择尺寸颜色');</script>");
}就是直接双击按钮生成的事件啊,要在哪里设置吗?
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)了。所以就如你所看到的,第一次点没有反映,第二次才能看见。
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</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>
用ajax是这样写法,但第一次点击无效,就没用了。
<asp:AsyncPostBackTrigger,点击无效啊
<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" />