0

これは私の最近の投稿と似ていますが、問題の一部が解決したので、別の問題として再投稿します。Ajax ComboBox を使用した ASP.Net アプリケーションがあります。ドロップダウンリストの OnSelectedIndexChanged イベントが発生すると、サーバー側メソッド FindEmpInfo が呼び出されます。FindEmpInfo はいくつかの処理を行ってから、メソッド EnableDeviceInfo を呼び出します。したがって、次のようになります。

protected void FindEmpInfo(object sender, EventArgs e)
    {
        DeviceInfo = findEmpInfo(ddlEmpName.SelectedValue,"","");
        DisplayDeviceInfo(DeviceInfo);
        if (ddlStatus.SelectedValue != "0")
            EnableDeviceInfo(false);
        else
            EnableDeviceInfo(true); //only enables on second call ???
        tbEmpName.Text = "";
    }

    protected void EnableDeviceInfo(bool enabled)
    {
        cbIMEI.Enabled = enabled;
        cbPhoneNumber.Enabled = enabled;
        rblCarrier_SP.Enabled = enabled;
        ddlModel.Enabled = enabled;
        rblSize.Enabled = enabled;
        rblColor_SP.Enabled = enabled;
        tbAssignedDate.Enabled = enabled;
        ddlScenario.Enabled = enabled;
        rblSplitBilling.Enabled = enabled;
        rblPhoneCombined_SP.Enabled = enabled;
        tbComments.Enabled = enabled;
        btnSubmit.Enabled = enabled;
    }

FindEmpInfo を呼び出す aspx コントロールは ddlEmpName です。

<asp:TableCell runat="server" >
        <asp:Label runat="server" Text="Employee Name: " Font-Bold="true" />
        <asp:DropDownList runat="server" ID="ddlEmpName" OnSelectedIndexChanged="FindEmpInfo" AutoPostBack="true" />
    </asp:TableCell>

ComboBox は次のようになります。

<asp:TableCell ID="TableCell3" runat="server">
                        <asp:Label ID="Label2" runat="server" Text="IMEI: " Font-Bold="true" />
                        <asp:ComboBox ID="cbIMEI" runat="server" OnSelectedIndexChanged="ChangeDataForIMEI" AutoPostBack="true">
                        </asp:ComboBox>
                    </asp:TableCell>

これは正常に機能しますが、パラメーターを true に設定して EnableDeviceInfo を初めて呼び出したときに ComboBox のステータスが有効にならないことを除きます。ComboBox を有効にするには、2 つの呼び出しが必要です。ただし、パラメーターが false の場合は、初めて機能します。このコードをデバッガーで実行したところ、パラメーターは常に正しい値に設定され、Enabled プロパティも正しく設定されていますが、パラメーターが true の場合、最初のパスでは常にグレー表示のままです。誰がこれを引き起こしているのか知っていますか?

4

0 に答える 0