我在页面上有一个自定义验证器:
<asp:CustomValidator ID="CustomValidator2" runat="server"  
     ControlToValidate="ddlProposer" ErrorMessage="Please select some values."  
     Display="Dynamic" onservervalidate="CustomValidator2_ServerValidate" 
     ClientValidationFunction="CustomValidator2_ClientValidate">
</asp:CustomValidator>  
ListCount当服务器端列表不为空(或:变量> 0)时,它必须有效。此列表可能会在页面加载后更改(通过更新面板上的按钮):
public partial class Pages_Application_Application : System.Web.UI.Page
{
    protected List<IdValue> ProposersList
    {
        get
        {
            if (ViewState["proposersList"] == null)
                ViewState["proposersList"] = new List<IdValue>();
            return ViewState["proposersList"] as List<IdValue>;
        }
        set
        {
            ViewState["proposersList"] = value;
        }
    }
    public int ListCount
    {
        get
        {
            return this.ProposersList.Count;
        }
    }
...
服务器端验证没有问题:
protected void CustomValidator2_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = this.ProposersList.Count > 0;
}
问题出在客户端部分。我一直在尝试这样的事情:
<script type="text/javascript">
    function CustomValidator2_ClientValidate(source, arguments) {
        var serverVariable = <%= ListCount %>;
        alert(serverVariable);
        arguments.IsValid = serverVariable > 0;
    }
</script>
但是,它仅在第一页加载时触发,并且 ListCount 变量始终为 0(serverVariable 也是如此)。
问题是:有没有简单的方法让它工作?那么Javascript获取一些服务器端变量的当前值?