请问在VS2005中用AJAX的UpdatePanel1不能触发另一控件的问题

gdlpc 2009-11-18 12:02:49
在VS2005中用AJAX的UpdatePanel1中放两个按钮Button1、Button2、TextBox1

单击Button1弹出一个选择对话框,确定后不能触发另一控件Button2,TextBox1的值为空。

如果把Button2放到UpdatePanel1之外,就可以触发Button2,TextBox1的值为:Button1_Click987654321,但会刷新页面,不想要这种效果。

请问这是什么原因?如何解决?十分感谢!

以下是测试代码:
protected void Button1_Click(object sender, EventArgs e)
{
string Msg = "传来的参数";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "clientScript", "if(confirm('请选择'" + Msg + "')){document.getElementById('Button2').click();}", true); //弹出对话框 确定后触发另一按钮 ,但按钮在同一UpdatePanel1内不能触发 为什么?如何解决?多谢
}

protected void Button2_Click(object sender, EventArgs e)
{//我的目的是执行一段删除操作
TextBox1.Text = "Button1_Click987654321" //测试
}
...全文
143 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdlpc 2009-11-21
  • 打赏
  • 举报
回复
也不能解决,但帖子放了这么长时间,不好意思还是结帖了。另开一帖。
damngoto123 2009-11-20
  • 打赏
  • 举报
回复
我这几天也是被updatepanel和对话框搞的郁闷啊。。。。
gdlpc 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 damngoto123 的回复:]
我这几天也是被updatepanel和对话框搞的郁闷啊。。。。
[/Quote]
多谢你了,我没有 html及script的基础知识,更难了。以前我是用delphi的,它对话框很容易作用,
我觉得delphi的代码更人性化。
VS不知入手,......
gdlpc 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 vedy0451 的回复:]
AJAX 解决了所有你想要解决的问题
[/Quote]
如何解决?多谢!
gdlpc 2009-11-19
  • 打赏
  • 举报
回复
也是不能触发Button2
Vedy 2009-11-19
  • 打赏
  • 举报
回复
AJAX 解决了所有你想要解决的问题
gdlpc 2009-11-19
  • 打赏
  • 举报
回复
被这对话框搞晕头了
yuankang19870627 2009-11-19
  • 打赏
  • 举报
回复
楼主试试这个:

ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1, this.GetType(), "clientScript", "if(confirm('请选择'" + Msg + "')){document.getElementById('Button2').click();}", true);
gdlpc 2009-11-18
  • 打赏
  • 举报
回复
多谢jshi123!是多了一个单引号,这是发表时多打的,我在测试时没有这个单引号的。可以弹出对话框。
我又用如下测试了,还是不能触发UpdatePanel1内的另一Button2
测试如下:

单击Button1弹出一个选择对话框,确定后不能触发另一控件Button2,TextBox1的值为空。,

如果把Button2放到UpdatePanel1之外,就可以触发Button2,TextBox1的值为:Button1_Click987654321,但会刷新页面,不想要这种效果。
protected void Button1_Click(object sender, EventArgs e)
{
string Msg = "传来的参数";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "clientScript", "if(confirm('请选择\\n" + Msg + "')){document.getElementById('Button2').click();}", true); //弹出对话框 确定后触发另一按钮 ,但按钮在同一UpdatePanel1内不能触发 为什么?如何解决?多谢
}

protected void Button2_Click(object sender, EventArgs e)
{//我的目的是执行一段删除操作
TextBox1.Text = "Button1_Click987654321" //测试
}
gdlpc 2009-11-18
  • 打赏
  • 举报
回复
我试过在前台这样
<asp:Button ID="Button1" runat="server" Text="前台提示" OnClientClick="return confirm('提示信息');" OnClick="Button1_Click" />
后台:
protected void Button1_Click(object sender, EventArgs e)
{//我的目的是执行一段删除操作
TextBox1.Text = "Button1_Click987654321"; //测试
}
这样单击“确定”后,TextBox1的值为:Button1_Click987654321 正常,
但'提示信息'又不能取得后台的详细信息,这样的提示不够清楚,不知道该不该“确定”
有什么办法完善完善?
wubing1111 2009-11-18
  • 打赏
  • 举报
回复
UpdatePanel1有時會對腳本衝突,不如試一下不用腳本的提示,測試 一下是否受到影響了.
gdlpc 2009-11-18
  • 打赏
  • 举报
回复
还是不行,请问你的
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
string Msg = "传来的参数";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "clientScript", "if(confirm('请选择\\n" + Msg + "')){document.getElementById('Button2').click();}", true); //弹出对话框确定后触发另一按钮 ,但按钮在同一UpdatePanel1内不能触发 为什么?如何解决?多谢
}

protected void Button2_Click(object sender, EventArgs e)
{//我的目的是执行一段删除操作
TextBox1.Text = "Button1_Click987654321"; //测试
} </script>

是什么意思?
我是把Button1、Button2、TextBox1 都放在UpdatePanel1中,不能触发!
jshi123 2009-11-18
  • 打赏
  • 举报
回复
我这里测试可以啊,你直接贴下面的代码,有什么问题?

<body>
<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
string Msg = "传来的参数";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "clientScript", "if(confirm('请选择\\n" + Msg + "')){document.getElementById('Button2').click();}", true); //弹出对话框确定后触发另一按钮 ,但按钮在同一UpdatePanel1内不能触发 为什么?如何解决?多谢
}

protected void Button2_Click(object sender, EventArgs e)
{//我的目的是执行一段删除操作
TextBox1.Text = "Button1_Click987654321"; //测试
} </script>
</form>
</body>
gdlpc 2009-11-18
  • 打赏
  • 举报
回复
近两天被这对话框搞晕头了。
请帮助,多谢!
jshi123 2009-11-18
  • 打赏
  • 举报
回复
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "clientScript", "if(confirm('请选择'" + Msg + "')){document.getElementById('Button2').click();}", true);
多了个单引号,js语法错误

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧