怎么调用一个有 Attributes.Add("onclick" 代码的CLICK事件?

moqing 2012-04-19 12:44:32
我有一个按钮加了:
Button4.Attributes["onClick"] = "javascript:return confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)');";

然后我在BTCreate按钮中间要处理:
protected void BTCreate_Click(object sender, EventArgs e)
{

//上面省略有一段代码判断其他条件...
if (!string.IsNullOrEmpty(icOAHttp))
{
inRun = 0 ;
[激活Button4的CLICK事件,以便弹出选择提示框]
}
if (string.IsNullOrEmpty(icOAHttp) && !String.IsNullOrEmpty(ilSel) || inRun == 1)
{
[执行重新生成付款的过程]
}

}
Button4的 Button4_Click代码有 inRun = 1;



请问上面 [激活Button4的CLICK事件,以便弹出选择提示框] 的代码怎么写,或怎么解决这个弹出选择提示框且选择后依选择的什么按钮来执行不同的过程的问题?
...全文
612 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowen_ly 2012-06-13
  • 打赏
  • 举报
回复
页面的流程设计不能是这样的.
试试:Page.ClientScript.RegisterClientScriptBlock(typeof(page),"key","<script>js代码</script>");
moqing 2012-06-13
  • 打赏
  • 举报
回复
WEB开发真是让人无语,简简单单一件事,就是实现不了, 只能让用户无聊地多点击一次了
anzhiqiang_touzi 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
给你一个例子:

HTML code


<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="Up……
[/Quote]
  • 打赏
  • 举报
回复
先去理解asp.net页面的生命周期以及web程序客户端和服务端的交互,之后你就会明白问题所在和解决办法了,这样才可以举一反三,解决类似问题。
光得到几段代码,眼前的问题是解决了,但不求甚解,以后碰到类似的问题还是不知道如何做。
我当年做了两年多web开发,但因为懒,不求甚解,对web程序没有真正理解,后来搞asp.net时,仍然不知道怎么做。后来搞懂了它的原理,什么asp.net mvc, php都很快做出产品来。
ms 2012-05-01
  • 打赏
  • 举报
回复
直接在按钮上加事件
John1202 2012-05-01
  • 打赏
  • 举报
回复
我也遇到类似问题,期待有人指点。
moqing 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

[激活Button4的CLICK事件,以便弹出选择提示框]

脚本事件发生在客户端,服务器端不需要任何处理,这个和c/s的不同



Button4.Attributes["onClick"] = "javascript:return confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)');";

已经让浏览器在 ["onCl……
[/Quote]

请问我这个问题应该怎么处事呢?
moqing 2012-04-19
  • 打赏
  • 举报
回复
不行呀,我是要在一个按扭的代码中间判断了其他条件后才需要激活Button4的Click()事件.
传递正能量 2012-04-19
  • 打赏
  • 举报
回复
[激活Button4的CLICK事件,以便弹出选择提示框]

脚本事件发生在客户端,服务器端不需要任何处理,这个和c/s的不同



Button4.Attributes["onClick"] = "javascript:return confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)');";

已经让浏览器在 ["onClick"] 的客户端工作的时候执行了
夜色镇歌 2012-04-19
  • 打赏
  • 举报
回复
Button4.click+=new eventhandler();不行嘛
moqing 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

<asp:Button id="BTCreate" OnClientClick="return confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)');"
Text="Click Me" runat="server" OnClick="BTCreate_Click" />

后台代码:
然后我在BTCreate按钮中间要处理:
p……
[/Quote]

主要是: 我对 [激活Button4的CLICK事件,以便弹出选择提示框] 这个不明白如何去实现
moqing 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

楼主你的逻辑是winform的逻辑,web里不应该这么实现的,

把这个函数分成俩部分,
[/Quote]

请问应该怎么实现在?
觉悟之时 2012-04-19
  • 打赏
  • 举报
回复
<asp:Button id="BTCreate" OnClientClick="return confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)');"
Text="Click Me" runat="server" OnClick="BTCreate_Click" />

后台代码:
然后我在BTCreate按钮中间要处理:
protected void BTCreate_Click(object sender, EventArgs e)
{

//上面省略有一段代码判断其他条件...
if (!string.IsNullOrEmpty(icOAHttp))
{
inRun = 0 ;
[激活Button4的CLICK事件,以便弹出选择提示框]
}
if (string.IsNullOrEmpty(icOAHttp) && !String.IsNullOrEmpty(ilSel) || inRun == 1)
{
[执行重新生成付款的过程]
}
}

程序会先执行前台的onclientclick,如果这个没有通过,也不会执行后台的代码,所以后台就不用
判断了。
  • 打赏
  • 举报
回复
document.getElementById("Button4").click();

这里的Button4 是你要执行"重新生成付款操作"或者“打开已有付款表操作"的按钮的ID

比如<asp:Button ID="btnAgain" runat="server" Text="Button" OnClick="Button2_Click" />执行重新生成,
那么这里就是 btnAgain

hebeijg 2012-04-19
  • 打赏
  • 举报
回复
楼主你的逻辑是winform的逻辑,web里不应该这么实现的,

把这个函数分成俩部分,
moqing 2012-04-19
  • 打赏
  • 举报
回复
//现在可以弹出来了,但报错
<script language="javascript" type="text/javascript">
function ChkIt() {
if (confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)')) {
document.getElementById("Button4").click(); //Button1在后台执行"重新生成付款操作"
}
}


<asp:Button ID="BTCreate" runat="server" Text="生成付款表"
Height="32px" Width="82px" Enabled="False" onclick="BTCreate_Click" />
<asp:Button ID="Button4" runat="server" onclick="Button4_Click" Enabled="False"
Width="16px" />

if (!string.IsNullOrEmpty(icOAHttp))
{
inRun = 0;
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, UpdatePanel1.GetType(), "sysinfo", "ChkIt()", true);

}




上面是部份代码
document.getElementById("Button4").click();
的执行到这里时报错
Microsoft JScript 运行时错误: 'document.getElementById(...)' 为空或不是对象
  • 打赏
  • 举报
回复
代码贴出来
moqing 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

给你一个例子:HTML code

<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1"……
[/Quote]

谢谢,我按你的修改了我的代码,但是在调试时没有执行那个提示框,且 ScriptManager.RegisterClientScriptBlock(UpdatePanel1, UpdatePanel1.GetType(), "sysinfo", "ChkIt()", true);语句也是正常执行的.
  • 打赏
  • 举报
回复
给你一个例子:

<body>
<form id="form1" runat="server">
<div>
<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" />
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="Button" OnClick="Button3_Click" />
</div>

</form>
</body>
</html>
<script language="javascript" type="text/javascript">
function ChkIt()
{
if(confirm('已生成过付款,确认要重新生成吗?(选[是]重新生成付款,选[否]打开已有的付款表)'))
{
document.getElementById("Button2").click();//Button1在后台执行"重新生成付款操作"
}
else
{
document.getElementById("Button3").click();//Button2在后台执行"打开已有付款表操作"
}
}
</script>


cs:
    protected void Button1_Click(object sender, EventArgs e)
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, UpdatePanel1.GetType(), "sysinfo", "ChkIt()", true);
}
protected void Button2_Click(object sender, EventArgs e)
{
//执行"重新生成付款操作"...
}
protected void Button3_Click(object sender, EventArgs e)
{
//执行"打开已有付款表操作"...
}
moqing 2012-04-19
  • 打赏
  • 举报
回复
我要的效果是这样的,我在BTCreate按钮里有一个过程,在过程前部份判断一些值无误后,需要弹出一个提示框,问用户是打开已有的付款表还是要重新新增付款表?
注: 不能是在按钮在一开始就弹出提示框.
加载更多回复(1)

62,242

社区成员

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

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

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

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