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 回答