ASP.NET / JavaScript错误。零星发生,'长度为空或不是对象'

时间:2012-09-14 14:13:51

标签: javascript asp.net web-config null

这个让我感到困惑。我有一个可以执行许多功能的Web应用程序,但它正在轰炸的部分是在执行一个调用Web服务并从DB2返回结果的Search函数时。

奇怪的是,错误并不总是发生,只有当通过vip(在负载均衡器上,在2个IIS服务器上进行循环访问)访问我的Web应用程序时才会出现错误。在使用其中一个服务器的直接URL时访问Web应用程序时不会出现错误。

这让我相信,我的web.config有什么用?

我也搜索了我的javascript代码,并且我不在任何地方使用Length。

请帮忙,我一直在撞墙撞墙。

用代码更新(我在下面包含了必要的代码,省略了其余代码):

//使用Javascript ***

function ValidateSearch(){

if (Page_ClientValidate("TransSearch") == true) {              
                ShowWait();
                return true;
            }
            else {
                return false;
            }

}

函数ShowWait(){

    target = document.getElementById('progress');
    document.body.appendChild(target);
    spinner.spin(target);
//This calls spinner.js from github

}

function searchComplete(){

//clear previous search textboxes
document.getElementById('<%# txtEmail.ClientID %>').value = "";
    document.getElementById('<%# txtPhone.ClientID %>').value = "";

spinner.stop();

}

//标记***

    <div class="searchlabel">
    <label>Email Address</label><asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator runat="server" ID="EmailReq"  
                ControlToValidate="txtEmail"  ValidationGroup="TransSearch"
            Display="None"  
            ErrorMessage="<b>Required Field Missing</b><br />Email is required." />  
        <asp:ValidatorCalloutExtender runat="Server" ID="EmailReqE"  
            TargetControlID="EmailReq"  
            HighlightCssClass="validatorCalloutHighlight"  />
</div>
<div class="searchlabel">
        <label>Phone</label><asp:TextBox ID="txtPhone" runat="server" Font-Size="Medium"></asp:TextBox>
            <asp:RequiredFieldValidator runat="server" ID="PhnReq"  
                ControlToValidate="txtPhone"  ValidationGroup="TransSearch"
                Display="None"  
                ErrorMessage="<b>Required Field Missing</b><br />Phone is required." />  
            <asp:ValidatorCalloutExtender runat="Server" ID="PhnReqE"  
                TargetControlID="PhnReq"  
                HighlightCssClass="validatorCalloutHighlight" /> 
    </div> 
<asp:Button ID="btnSearch" runat="server" Text="Search" Width="90px" OnClientClick="return ValidateSearch();" OnClick="Search_Click" />

//代码隐藏***

public void Search_Click(Object sender,EventArgs e)         {

//passes search text to webservice
//fills gridview with returned data
//lastly calls javascript function to stop spinner
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "searchComplete", "<script type='text/javascript'>searchComplete();</script>", false);

}

1 个答案:

答案 0 :(得分:0)

也许你的javascript函数没有获得你提供的文本框。

document.getElementById('<%# txtEmail.ClientID %>').value

使用以下方法检查值:

alert(document.getElementById('<%# txtEmail.ClientID %>').value ) 

如果是返回值。这可能是你的spinner.stop();没有用。

使用警报查看是否正在输入您的功能。我每次陷入javascript时都会使用它。它帮助我找到函数出错的行。