body onload = func在IsPost中工作但不是!IsPost(多个body-onloads好吗)?

时间:2016-07-26 17:55:22

标签: javascript asp.net

我有一个用If(IsPost)和If(!IsPost)触发的脚本。当我通过代码F11一切工作相同的期望在最后一个javascript函数显示div不触发。

 // SCRIPT FOR SHOW DIV.
<script>
        function ShowFunction(divId) 
        {   
            $("#" + divId).show(600);
        }    
</script>

if (!IsPost)
        { 
            var user = WebSecurity.CurrentUserId;
            var dbCommand = "SELECT * FROM Survey WHERE survey_id = @0";
            var row = db.QuerySingle(dbCommand, user);
            if (row != null)
            {
                surv1 = row.surveyQ1;
                if (surv1 != null)
                  {
                   someOtherVariable = "Complete";
                  <body onload="$('#somediv').remove();"></body>;
                  }
            }
             if (someOtherVariable = "Complete";
               {
            <body onload="ShowFunction('Mydiv');"</body>;                
               }
       }

if (IsPost)
    { 
if (Request.Form["btnsubmit"] !=null)
        {
            var user = WebSecurity.CurrentUserId;
            var dbCommand = "SELECT * FROM Survey WHERE survey_id = @0";
            var row = db.QuerySingle(dbCommand, user);
            if (row != null)
            {
                surv1 = row.surveyQ1;
            }
        if (surv1 == "yes")
            {
            <body onload="ShowFunction('Mydiv');"></body>;
            }
        }
    }

此外,cshtml页面的结构正好位于IsPost上方,位于IsPost之上,位于Form代码之上。另一篇文章提出,我在脚本块中也有一个'window.onload'脚本可能会弄乱&lt; body onload =“func”&gt;。我不确定为什么只有在不发布时才会出现这个问题。

1 个答案:

答案 0 :(得分:0)

我找到了罪魁祸首。虽然这不在我发布的原始代码中,但我实际上还有一个正在运行的代码位于if(!ispost)中没有触发的代码之上。额外的身体负荷不在if(ispost),这就是为什么这个职位工作得很好。我编辑了原始代码来展示这一点。一旦我将第一个身体上的负荷(通过一些按摩)向下移动到另一个身体上,它就可以正常工作。在移动了第一个body-onload后,我在if(!ispost)代码段中留下了一个body-onload。

<body onload="ShowFunction('Mydiv'); $('#somediv').remove();"</body>;                

我还添加了我的原始标题,以便这对偶然发现它的人有用。总之,请注意何时有多个onload事件。您可能需要将它们堆叠到一个onload中并稍微按下代码。