[待解决问题] 连续改变Label问题
提问时间: 2008-04-27 16:28
悬赏分:10 该问题已到期 浏览:165 次

        string js;
        js = "var shine;shine=parseFloat(document.all.Label1.innerText);document.getElementById('Label1').innerHTML=shine+0.5;";
        ScriptManager.RegisterStartupScript(Button1, GetType(), "haohao", js, true);

放按钮下为什么只加一次0.5啊   有什么办法可以解决???
  那位大哥帮帮我啊


提问者:浩浩 - 初学一级
所有回答(3)
没看明白你是什么意思
不过在网页中的确会有一种情况,连续点击只会触发一次事件
2周前   回答者:丁学 - 老鸟四级
Register<b>Startup</b>Script
2周前   回答者:deerchao - 老鸟四级
你说的情况主要是因为: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页面在运行后的源文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>无标题页</title>
</head>
<body>
    <form name="form1" method="post" action="Default.aspx" id="form1">
<div><!--下面的input id="__VIEWSTATE"的标记中,其value中存储了本页中Lable1控件及其他控件的状态和值(包括Lable1.Text的值)-->
<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
<!--当工程运行时,服务器控件Lable1在源文件中的标记-->
<span id="Label1">1</span>
<!--当工程运行时,服务器控件Button1在源文件中的标记-->
<input type="submit" name="Button1" value="Button" id="Button1" />
<!--下面div和JavaScript都是工程运行后,Asp.Net向页面添加的内容,非程序员自己编写的代码-->
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWGgLmrd3DAQK7qs/zCwKDqYO1AwK7qqOXAwKDqb+1AwK7quepBQKDqbu1AwK7qvvMAgKDqbe1AwK7qr/fBAKDqZO1AwK7qpOCDAKDqY+1AwK7qteUBgKDqYu1AwK7qqu4DwKDqYe1AwK7qq+ZDAKDqeO1AwK7qoO8BQKDqZ+1AwKM54rGBgLs0bLrBgLs0fbZDALs0Yq1BQLs0e58tWtGtdOddenELzfZAUrQnMiVaIs=" />
</div>
<script type="text/javascript">
//<![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();
    }
}
//]]>
</script>
</form>
</body>
</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);

不知道是否能解决您的问题。
2周前   回答者:刚刚 - 小虾三级
2周前   浩浩 :
我是想循环为Label1加0.5   如果我开始为Label1设置为1 
点下按妞Label1变为1.5 在点下后还是1.5
 我看了服务器端代码  Label1始终是1
 不知道怎么办了
2周前   浩浩 :
Register<b>Startup</b>Script
什么意思啊?
2周前   浩浩 :
嘿嘿  谢谢你了     估计我想法有点问题   
   我试这换个方法了   哈哈
2周前   刚刚 :
不客气,该结贴了吗?
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除