Problema com dropdownlist asp.net

Olá amigo. Tudo bem?

comecei dia desses a mexer com a plataforma .net e claro venho tendo um pouco de problemas em lidar com ela…rs

meu problema creio ser bem simples … acontece o seguinte… Estou fazendo um site em asp.net que terá uma pagina master … nessa página master terei um campo de codigo (text input) e duas combos (mes e ano) … ao digitar as informações será apresentado um boleto correspondente …

pois bem, qdo seleciono as informações e clico em OK, faço um teste dos valores mas as combos não apresentam os valores selecionados… voltam pros valores iniciais… exemplo, se digito o codigo 2000, seleciono o mes abril e o ano 2009, quando clico em OK, ao invés de mostrar (no meu teste) “2000, abril, 2009” ele me mostra “2000, Janeiro, 2010” (o anual atual qh o que ficará em primeiro na combo) …

segue os codigos

MASTERPAGE1.MASTER

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage1.master.cs" Inherits="WebApplication1.MasterPage1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Centroeste de Minas</title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
    <link rel = "Stylesheet" type = "text/css" href = "css/Master.css" /> 
    
<script language="javascript" type="text/javascript">
// <!CDATA[

 function mensagemSucesso(stringMensagem, Pagina){
          alert(stringMensagem);          
    }

// ]]>
</script>
</head>
<body>
    <form id="form1" runat="server" method = "post">
    <asp:ScriptManager ID="ScriptManager1" runat="server"/> 
    <div>
        <table class="style1" id="TopoPagina" bgcolor="#3366CC">
            <tr>
                <td>
                            Código: <asp:TextBox id="textCodigo" runat = "server" Width="50px"></asp:TextBox>
                            Mês: <asp:DropDownList ID="comboMes" runat="server">
                            </asp:DropDownList>
                            Ano: <asp:DropDownList ID="comboAno" runat="server">
                            </asp:DropDownList>
                            <asp:Button ID="buttonOK" runat="server" onclick="buttonOK_Click" Text="OK" />
                </td>
            </tr>
        </table>
        
    </div>
    <table class="style2" id="LateralPagina">
        <tr>
            <td bgcolor="#3366CC" class="style3">
                </td>
            <td class="style6">
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" Visible="true">            
        
        </asp:ContentPlaceHolder>
            </td>
        </tr>
    </table>
    <table class="style4" id="RodapePagina" bgcolor="#3366CC">
        <tr>
            <td class="style5">
            </td>
        </tr>
    </table>
    </form>    
</body>
</html>

MASTERPAGE.MASTER.CS

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
using System.IO;

namespace WebApplication1
{
    public partial class MasterPage1 : System.Web.UI.MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DateTime data = DateTime.Now;

            comboMes.Items.Clear();
            comboAno.Items.Clear();

            //Fará a leitura do arquivo "ComboMes.xml" que contem 
            //todos os 12 meses do ano para preencher a combo relativa
            //aos meses do ano
            DataSet ds = new DataSet();
            ds.ReadXml(MapPath("Listas/ComboMes.xml"));
            comboMes.DataSource = ds.Tables["mes"];
            comboMes.DataTextField = "nome";
            comboMes.DataValueField = "codigo";
            comboMes.DataBind();

            //loop que preencherá a Combo relativa ao ano, colocando em
            //ordem decrescente, do ano vigente voltando até o ano de 2010
            for (int contador = data.Year; contador >= 2010; contador--)
            {
                comboAno.Items.Add(contador.ToString());
            }
        }

        //Evento clique do botão onde testo
        protected void buttonOK_Click(object sender, EventArgs e)
        {
            String msg = textCodigo.Text + ", " + comboMes.SelectedItem.Text + ", " + comboAno.SelectedItem.Text;
            string pagina = "index.aspx";
            string meuScript = "<script>alert '" + msg + "');location.href='" + pagina + "'</script>";
            
            Response.Write("<script>alert( '" + msg + "');location.href='" + pagina + "'</script>");                   
        }       
    }
}

Poderiam me ajudar??

Outra pergunta: Qual o melhor modo de exibir uma mensagem ao usuário, caso por exemplo, ele digite um código inválido?? o modo como usei acima está legal??

desde já agradeço…

att.
Junior

Faz isso no PageLoad:

protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ... seu código } }

O que acontece é que quando você clica no Botão ele faz um POST e cai no Page_Load antes de cair no ButtonClick.
Logo, como no Page_Load é feito a inicialização dos campos, geralmente é usado o this.IsPostBack.

Olá amigo, tudo bem?

cara, perfeito … funcionou msm

Muito obrigado pela atenção

abraço.

RESOLVIDO