首页 新闻 会员 周边

连续改变Label问题

0
悬赏园豆:10 [已关闭问题]
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string js;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; js = "var shine;shine=parseFloat(document.all.Label1.innerText);document.getElementById('Label1').innerHTML=shine+0.5;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ScriptManager.RegisterStartupScript(Button1, GetType(), "haohao", js, true);</P> <P>放按钮下为什么只加一次0.5啊&nbsp;&nbsp; 有什么办法可以解决???<BR>&nbsp; 那位大哥帮帮我啊</P>
浩浩的主页 浩浩 | 初学一级 | 园豆:2
提问于:2008-04-27 16:28
< >
分享
其他回答(2)
0
没看明白你是什么意思 不过在网页中的确会有一种情况,连续点击只会触发一次事件
丁学 | 园豆:18730 (专家六级) | 2008-04-27 16:50
0
Register<b>Startup</b>Script
deerchao | 园豆:8367 (大侠五级) | 2008-04-27 17:00
0
你说的情况主要是因为:Lable是服务器控件并不是HTML标记,而你用JavaScipt改变Lable中的值时其实并没有将正真Lable.Text的值改变,应为在载入页面时,页面中所有值及状态都被保存在页面的__VIEWSTATE中,当页面被submit后,所有的值都是从__VIEWSTATE中读取的,而Lable.Text的初始值是1,用JavaScript改变后的值是不会被保存到__VIEWSTATE中的,所以__VIEWSTATE中存储的Lable.Text的值永远都是1,因此无论你点击Button多少次,回发页面多少次,最终用JavaScript的计算过程永远是Lable.Text=1+0.5(得1.5),永远看到页面的结果是1.5。不知道我的解释你是否明白了?下面给你看看Aspx页面在运行后的源文件: &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &lt;html xmlns="http://www.w3.org/1999/xhtml" > &lt;head>&lt;title>无标题页&lt;/title> &lt;/head> &lt;body> &lt;form name="form1" method="post" action="Default.aspx" id="form1"> &lt;div>&lt;!--下面的input id="__VIEWSTATE"的标记中,其value中存储了本页中Lable1控件及其他控件的状态和值(包括Lable1.Text的值)--> &lt;input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE4OTA2NDE5OTEPZBYCAgMPZBYCAgEPPCsADQIADxYGHgpEYXRhTWVtYmVyBQJkdB4LXyFEYXRhQm91bmRnHgtfIUl0ZW1Db3VudAIKZAwUKwADFggeBE5hbWUFAklEHgpJc1JlYWRPbmx5aB4EVHlwZRkrAR4JRGF0YUZpZWxkBQJJRBYIHwMFCeaWh+S7tuWQjR8EaB8FGSsCHwYFCeaWh+S7tuWQjRYIHwMFBui3r+W+hB8EaB8FGSsCHwYFBui3r+W+hBYCZg9kFhYCAQ9kFgYCAg8PFgIeBFRleHQFATFkZAIDDw8WAh8HBRnmtY/op4jkuIvovb3mtYvor5Xmlofku7YxZGQCBA8PFgIfBwUgYzpc5rWP6KeI5LiL6L295rWL6K+V5paH5Lu2MS5kb2NkZAICD2QWBgICDw8WAh8HBQEyZGQCAw8PFgIfBwUZ5rWP6KeI5LiL6L295rWL6K+V5paH5Lu2MmRkAgQPDxYCHwcFIGM6XOa1j+iniOS4i+i9vea1i+ivleaWh+S7tjIuZG9jZGQCAw9kFgYCAg8PFgIfBwUBM2RkAgMPDxYCHwcFGea1j+iniOS4i+i9vea1i+ivleaWh+S7tjNkZAIEDw8WAh8HBSBjOlzmtY/op4jkuIvovb3mtYvor5Xmlofku7YzLmRvY2RkAgQPZBYGAgIPDxYCHwcFATRkZAIDDw8WAh8HBRnmtY/op4jkuIvovb3mtYvor5Xmlofku7Y0ZGQCBA8PFgIfBwUgYzpc5rWP6KeI5LiL6L295rWL6K+V5paH5Lu2NC5kb2NkZAIFD2QWBgICDw8WAh8HBQE1ZGQCAw8PFgIfBwUZ5rWP6KeI5LiL6L295rWL6K+V5paH5Lu2NWRkAgQPDxYCHwcFIGM6XOa1j+iniOS4i+i9vea1i+ivleaWh+S7tjUuZG9jZGQCBg9kFgYCAg8PFgIfBwUBNmRkAgMPDxYCHwcFGea1j+iniOS4i+i9vea1i+ivleaWh &lt;!--当工程运行时,服务器控件Lable1在源文件中的标记--> &lt;span id="Label1">1&lt;/span> &lt;!--当工程运行时,服务器控件Button1在源文件中的标记--> &lt;input type="submit" name="Button1" value="Button" id="Button1" /> &lt;!--下面div和JavaScript都是工程运行后,Asp.Net向页面添加的内容,非程序员自己编写的代码--> &lt;div> &lt;input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> &lt;input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> &lt;input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWGgLmrd3DAQK7qs/zCwKDqYO1AwK7qqOXAwKDqb+1AwK7quepBQKDqbu1AwK7qvvMAgKDqbe1AwK7qr/fBAKDqZO1AwK7qpOCDAKDqY+1AwK7qteUBgKDqYu1AwK7qqu4DwKDqYe1AwK7qq+ZDAKDqeO1AwK7qoO8BQKDqZ+1AwKM54rGBgLs0bLrBgLs0fbZDALs0Yq1BQLs0e58tWtGtdOddenELzfZAUrQnMiVaIs=" /> &lt;/div> &lt;script type="text/javascript"> //&lt;![CDATA[ var theForm = document.forms['form1']; if (!theForm) { theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> &lt;/script> &lt;/form> &lt;/body> &lt;/html> 个人给你的问题的建议和解决方法: 1、如果你的目的并不是要在服务器端用到服务器控件Lable1中的Text值(比如并不想将变化的值存入数据库),Button1也没有其他服务器端可作的事情,而只是改变Lable1的值,那么我建议你还是将服务器控件Lable1和Button1都换成html标记控件,在将你问题中写的JavaScript写到客户端中去,而不要只想着从后台的服务器端向客户端去写。 2、如果你需要在后台服务器端用到Lable1.Text的值,那么请不要用JavaScript去改变而是直接在后台的CS源码文件中的某个事件,用下面的语句去计算,来改变Lable1.Text的值:Label1.Text = Convert.ToString(Convert.ToDouble(Label1.Text) + 0.5); 不知道是否能解决您的问题。
刚刚 | 园豆:3151 (老鸟四级) | 2008-04-27 23:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册