Neste exemplo vamos criar um formulário de compra de títulos, onde será informado para o usuário o valor de um título e poderá ser comprado títulos informando quantidade ou valor. O site fará o cálculo da quantidade ou valor total de acordo com o botão selecionado. O resultado final será conforme Imagem 1.

Crie um novo site. Abra a página Default.aspx e adicione um controle label e defina as propriedades da seguinte forma:
ID : lblDescricaoValor
Text: Valor de cada título:
Adicione outro Label e defina as propriedades da seguinte forma:
ID: lblValor
Adicione um controle ValidationSummary e definas as propriedades:
ID: vsQuantidade
ValidationGroup: Quantidade
Adicione mais um controle Label e defina as propriedades:
ID: lblQuantidade
Text: Quantidade:
Adicione um controle do tipo TextBox e defina as propriedades:
ID: txtQuantidadeDesejada
Adicione um controle RequiredFieldValidator e defina as propriedades:
ID: rfvQuantidade
ControlToValidate: txtQuantidadeDesejada
Display: Dynamic
ErrorMessage: Informe a Quantidade
Text: *
ValidationGroup: Quantidade
Adicione um controle CompareValidator, para garantir que um número inteiro seja digitado e defina as propriedades:
ID: cvQuantidade
ControlToValidate: txtQuantidadeDesejada
Display: Dynamic
ErrorMessage: Informe um número inteiro
Operator: GreaterThan
Text: *
Type: Integer
ValidationGroup: Quantidade
ValueToCompare: 0
Adicione um botão e defina as propriedades:
ID: btnCalcularValor
Text: Calcular Valor
ValidationGroup: Quantidade
Nossa página que contêm controles que serão usados no cálculo do valor por quantidade deve parecer com a Imagem 2 :

Adicione um controle ValidationSummary e definas as propriedades:
ID: vsValor
ValidationGroup: Valor
Adicione um controle do tipo Label e defina as propriedades:
ID: lblPorValor
Text: Valor:
Adicione um controle do tipo TextBox e defina as propriedades:
ID: txtValorDesejado
Adicione um controle CompareValidator, para garantir que um número inteiro seja digitado e defina as propriedades:
ID: cvValor
ControlToValidate: txtValorDesejado
Display: Dynamic
ErrorMessage: Informe um número inteiro
Operator: GreaterThan
Text: *
Type: Currency
ValidationGroup: Valor
ValueToCompare: 0
Adicione um controle RequiredFieldValidator e defina as propriedades:
ID: rfvValor
ErrorMessage: Informe o Valor
Text: *
ControlToValidate: txtValorDesejado
ValidationGroup: Quantidade
Adicione um botão e defina as propriedades:
ID: btnCalcularQuantidade
Text: Calcular Quantidade
ValidationGroup: Valor
Nossa página que agora também contêm controles que serão usados no cálculo da quantidade por valor deve parecer com a Imagem 3 :

Adicionamos agora os controles que informam o total da compra. Adicionaremos um Panel e definimos as seguintes propriedades:
ID: pnCompra
GroupingText: Valores de compra
Visible: False
Adicionamos um controle Label dentro do Panel pnCompra e definimos as propriedades:
ID: lblQuantidadeCompra
Text:Quantidade:
Adicionamos um controle TextBox dentro do Panel pnCompra e definimos as propriedades:
ID: txtQuantidadeCompra
Adicionamos um controle Label dentro do Panel pnCompra e definimos as propriedades:
ID: lblValorCompra
Text: Valor da Compra:
Adicionamos um controle TextBox dentro do Panel pnCompra e as propriedades deverão estar definidas como:
ID: txtValorCompra
ReadOnly: True
Adicionamos um controle Button dentro do Panel pnCompra e definimos as propriedades:
ID: btnComprar
Text: Comprar
Nossa página deverá ficar como a Imagem 4:

Vamos agora adicionar os códigos nos eventos apropriados, primeiro vamos programar o a exibição do valor do título. Adicionaremos uma CONST com o valor do título e atribuímos estes no lblValor, conforme código 1:
public const decimal ValotTitulo = 1000;
protected void Page_Load(object sender, EventArgs e)
{
lblValor.Text = ValotTitulo.ToString();
}
Código 1 – Definindo o valor do título
Programaremos o click do btnCalcularValor conforme código 2:
protected void btnCalcularValor_Click(object sender, EventArgs e)
{
decimal valorCompra = ValotTitulo * int.Parse(txtQuantidadeDesejada.Text);
txtQuantidadeCompra.Text = txtQuantidadeDesejada.Text;
txtValorCompra.Text = valorCompra.ToString();
pnCompra.Visible = true;
}
Código 2 – Calculando o Valor
Programaremos o click do btnCalcularQuantidade conforme código 3:
protected void btnCalcularQuantidade_Click(object sender, EventArgs e)
{
decimal valorDesejadoCompra = decimal.Parse(txtValorDesejado.Text);
decimal valorCompra = valorDesejadoCompra - (valorDesejadoCompra % ValotTitulo);
txtValorCompra.Text = valorCompra.ToString();
int quantidade = Convert.ToInt32(valorCompra / ValotTitulo);
txtQuantidadeCompra.Text = quantidade.ToString();
pnCompra.Visible = true;
}
Código 3 – Calculando a Quantidade
Execute a aplicação e repare que as validações acontecem tanto em cliente(Javascript se o navegador suportar), quanto em servidor.