1

私の問題は、 ddlObraコントロールのSelectedIndexChangedが起動しないことですが、 Page.ClientScript.RegisterOnSubmitStatementPage_Loadを消去すると、すべて正常に動作します。この振る舞いが理解できません。

コードは次のとおりです。

protected void Page_Load(object sender, EventArgs e)
{   
    if (!IsPostBack)
    {            
        CarregarDropDownLists();            
    }
    Page.ClientScript.RegisterOnSubmitStatement(Page.GetType(), "OnSubmitScript", "return handleSubmit()");
}

protected void ddlObra_SelectedIndexChanged(object sender, EventArgs e)
{
    List<Entidades.Empreendimento.Unidade> unidades = Entidades.Empreendimento.Unidade.ListaUnidades(txtLogin.Text);
    ddlBloco.Items.Clear();
    ddlUnidade.Items.Clear();
    ddlBloco.Items.Insert(0, new ListItem("----- Bloco -----", ""));
    ddlUnidade.Items.Insert(0, new ListItem("----- Unidade -----", ""));
    //if (unidades.Count == 1) return;

    foreach (Entidades.Empreendimento.Unidade Un in unidades)
    {
        if (Un.ObraVinculo.idObraCrm.ToString() == ddlObra.SelectedValue)
        {
            if (!ddlBloco.Items.Contains(new ListItem(Un.BlocoCRM.Nome, Un.BlocoCRM.CodigoCRM)))
            {
                ddlBloco.Items.Add(new ListItem(Un.BlocoCRM.Nome, Un.BlocoCRM.CodigoCRM));
            }

            Bandeira = Un.Bandeira;
            Estado = Un.Estado;
        }
    }
    ddlBloco.SelectedIndex = 0;
    ddlUnidade.SelectedIndex = 0;

    LoadAreas();
}

このコードは.aspxファイルにあります

<script type="text/javascript">
    function handleSubmit() {
        if (typeof (ValidatorOnSubmit) == 'function' && ValidatorOnSubmit() == false) {
            return false;
        } else {
            $("#btnEnviar").click(function () { return false }).fadeTo(200, 0.5);
            return true;
        }
    }
</script>

助けてくれてありがとう!

4

1 に答える 1

0

フォームの送信によって実行されるクライアント スクリプトは、フォームの送信を許可するために true を返す必要があります。これにより、クライアント側スクリプトが条件付きでフォームの送信を防止できるようになります。

于 2013-03-13T14:49:46.997 に答える