怎么让Page.RegisterStartupScript的代码先执行啊?

garyshao 2003-12-11 10:55:27
我有如下一段代码Page.RegisterStartupScript("body", "<script language='javascript'>if(window.confirm('" + Column_Name + fpopstr + "')){document.getElementById('hidden1').value='1';}else{document.getElementById('hidden1').value='0';}</script>"),我想根据返回的hidden1来进行操作,但是Page.RegisterStartupScript总是要到这个过程的最好才能执行,这样是我的判断失去的意义,由于我并不是由一个按钮触发这个JAVASCRIPT,所以问题不能通过btn.attribute.add解决.
...全文
65 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
garyshao 2003-12-11
  • 打赏
  • 举报
回复
To:uno(钢盅郭子) ,你是KDS的?不是我不想把响应脚本写在控件的触发事件里,关键是判断的条件要在我点控件进行对数据库操作以后才能得到
garyshao 2003-12-11
  • 打赏
  • 举报
回复
他们的区别我知道了,但是各位高人我的问题还没有解决,代码如下

Page.RegisterClientScriptBlock("body", "<script language='javascript'>if(window.confirm('" + Column_Name + fpopstr + "')){document.getElementById('hidden1').value='1';}else{document.getElementById('hidden1').value='0';}</script>")
If Me.hidden1.Value = "1" Then
Me.txtCNT_CntCode.Text = "234"
Else
Me.txtCNT_CntCode.Text = "253254"
End If
<.....牛多代码>
我现在的问题是要先执行过牛多代码后,才会弹出确认取消框执行判断,那怎么办啊?
uno 2003-12-11
  • 打赏
  • 举报
回复
RegisterStartupScript是服务器端的代码
那些script是客户端脚本

怎么能混为一谈呢?

应该将客户端的响应脚本写在控件的触发事件里
Bcbprogramer 2003-12-11
  • 打赏
  • 举报
回复
Page.RegisterClientScriptBlock
acewang 2003-12-11
  • 打赏
  • 举报
回复
RegisterClientScriptBlock :在 Page 对象的 <form runat= server> 元素的开始标记后立即发出客户端脚本。
RegisterStartupScript与 RegisterClientScriptBlock 方法类似,该方法在 Page 对象的 <form runat= server> 元素的结束标记之前发出该脚本。
----
<form..>
...

...
</form>
sweet12345 2003-12-11
  • 打赏
  • 举报
回复
关注……
garyshao 2003-12-11
  • 打赏
  • 举报
回复
Page.RegisterClientScriptBlock与Page.RegisterStartupScript有什么区别啊,我怎么用了还是效果一样啊,应该怎么用啊
Lostinet 2003-12-11
  • 打赏
  • 举报
回复
页面上
<asp:button style='width:0px;height:0px' runat=server id=button100></asp:button>
后台
//使用document.all.button100.click()来模拟button100的回发操作
Page.RegisterStartupScript("body", "<script language='javascript'>if(window.confirm('" + Column_Name + fpopstr + "')){document.getElementById('hidden1').value='1';}else{document.getElementById('hidden1').value='0';document.all.button100.click()}</script>")

处理
button100_Click(...)
{
在这里处理用户点了confirm之后的结果
//hidden1.value
}
momoguagua 2003-12-11
  • 打赏
  • 举报
回复
同意楼上
总是晚一步
acewang 2003-12-11
  • 打赏
  • 举报
回复
Page.RegisterClientScriptBlock
cyp503 2003-12-11
  • 打赏
  • 举报
回复
试试

<script language='javascript'>

==>

<script language='javascript' defer>
garyshao 2003-12-11
  • 打赏
  • 举报
回复
谢谢大家的帮助,我已经知道怎么做了.没想到这里也能遇到KDS的土匪
qimini 2003-12-11
  • 打赏
  • 举报
回复
修正一个错误
body"+一个随机数
qimini 2003-12-11
  • 打赏
  • 举报
回复
privaet void Verify(String strColumn_Name,String fpopstr)
{
Page.RegisterStartupScript("body"+Math.Random()/*这里防止重复注册*/, "<script language='javascript'>if(window.confirm('" + Column_Name + fpopstr + "')){document.getElementById('hidden1').value='1';}else{document.getElementById('hidden1').value='0';}</script>")
}

....

If Me.hidden1.Value = "1" Then
Me.txtCNT_CntCode.Text = "234"
Else
Me.txtCNT_CntCode.Text = "253254"
End If
<.....牛多代码>

this.Verify(Me.txtCNT_CntCode.Text,"校验不一样?");

这样可以不管顺序~~~
uno 2003-12-11
  • 打赏
  • 举报
回复
如果你想让程序根据客户端的响应结果来执行不同的逻辑

你的程序应该做如下改动:

由客户端脚本收集响应结果,并在客户端置某个隐藏控件的值(此控件需runat=server,在服务器端代码内可以访问)

接着触发某个服务器端控件(当然runat=server的html控件也可)的PostBack事件

在服务器端代码内判断隐藏控件的值执行不同的逻辑

****************
你现在的程序是将弹出确认对话框放在了整个页面输出到客户端之后被浏览器加载的一开始

这时服务器端代码都已经执行完毕
uno 2003-12-11
  • 打赏
  • 举报
回复
——
我现在的问题是要先执行过牛多代码后,才会弹出确认取消框执行判断,那怎么办啊?

这是显然的

牛多代码是服务器端的代码,由asp.net引擎解释执行
Register...虽然是在它们之前运行,但是它向客户端注册的脚本内容却是在整个后台执行完毕之后才输出到客户端

ps
我是kds的
garyshao 2003-12-11
  • 打赏
  • 举报
回复
不是的,这样只是结果,我想让脚本先执行,但是就算我写在前面,它也会先执行完后面的代码再执行脚本.
qimini 2003-12-11
  • 打赏
  • 举报
回复
你要的是不是这样啊?
If Me.hidden1.Value = "1" Then
Me.txtCNT_CntCode.Text = "234"
Else
Me.txtCNT_CntCode.Text = "253254"
End If
<.....牛多代码>
Page.RegisterStartupScript("body", "<script language='javascript'>if(window.confirm('" + Column_Name + fpopstr + "')){document.getElementById('hidden1').value='1';}else{document.getElementById('hidden1').value='0';}</script>")
ppp80 2003-12-11
  • 打赏
  • 举报
回复
我看这样是不行的,你为什莫不用脚本写到页面中?那样的话才能先执行!

62,073

社区成员

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

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

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

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