0

C# のバックグラウンドを持つ ASP.net オンライン アプリケーションを作成しています。AJAX MaskEditExtender も使用しています。私は AJAX の初心者で、Javascript を知りません。私がする必要があるのは、ラジオ ボタンの選択に基づいて、テキスト ボックスの AJAX マスクを変更することです。この例では、給与または時給を選択しています。給与を「999,999」、時給を「99.99」にする必要があります。

<asp:TextBox ID="finalwage" runat="server" Width="80px">$</asp:TextBox>
<!-- Salary Mask -->
    <asp:MaskedEditExtender 
            ID="MaskedEditExtender1" 
            runat="server" 
            TargetControlID="finalwage" 
            Mask="999,999" 
            MessageValidatorTip="true" 
            MaskType="Number" 
            InputDirection="RightToLeft" 
            AcceptNegative="None" 
            ErrorTooltipEnabled="true">
    </asp:MaskedEditExtender>
    <asp:MaskedEditValidator 
            ID="MaskedEditValidator1" 
            runat="server" 
            ControlExtender="MaskedEditExtender1" 
            IsValidEmpty="true" 
            MinimumValue="0" 
            MaximumValueMessage="Must enter a number" 
            ControlToValidate="finalwage" >
    </asp:MaskedEditValidator>
    <!-- Hourly Mask -->
    <asp:MaskedEditExtender 
            ID="MaskedEditExtender2" 
            runat="server" 
            TargetControlID="finalwage" 
            Mask="99.99" 
            MessageValidatorTip="true" 
            MaskType="Number" 
            InputDirection="RightToLeft" 
            AcceptNegative="None" 
            ErrorTooltipEnabled="true">
    </asp:MaskedEditExtender>
    <asp:MaskedEditValidator 
            ID="MaskedEditValidator2" 
            runat="server" 
            ControlExtender="MaskedEditExtender1" 
            IsValidEmpty="true" 
            MinimumValue="0" 
            MaximumValueMessage="Must enter a number" 
            ControlToValidate="finalwage" >
    </asp:MaskedEditValidator>

.......

<asp:RadioButtonList 
        ID="RadioButtonList1" 
        runat="server" 
        AutoPostBack="true" 
        RepeatDirection="Horizontal" 
        OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
    <asp:ListItem Text="Hourly" Value="Hourly"
    <asp:ListItem Text="Salary" Value="Salary" />
</asp:RadioButtonList>

私がうまくいくと思ったC#コードは次のとおりです。

protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (RadioButtonList1.SelectedValue = "Hourly")
    {
        MaskedEditExtender1.Mask = "99.99";
    }
    if (RadioButtonList1.SelectedValue == "Salary")
    {
        MaskedEditExtender1.Mask = "999,999";
    }
}
4

1 に答える 1

1

RadioButtonList1_SelectedIndexChanged コードを Page_Init に移動してみてください。RadioButtonList1_SelectedIndexChanged はライフサイクル プロセスでマスクを変更するには遅すぎると思います。

于 2012-09-13T19:18:49.960 に答える