• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Point

problema com dropdownlist dentro de datalist em c# + ASP.net

2 mensagens neste tópico

Boas

tenho uma dropdownlist dentro de uma datalist. só que não funciona bem

capturaecra1ez4.th.png

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Image img1;
Image img2;
DropDownList ddl1;

int a = ((int)((System.Data.DataRowView)e.Item.DataItem)["Disponiveis"]);
img1 = (Image)e.Item.FindControl("Image2");
img2 = (Image)e.Item.FindControl("Image3");
ddl1=(DropDownList)e.Item.FindControl("DropDownList1");

img1.Visible = (((bool)((System.Data.DataRowView)e.Item.DataItem)["Promo"]) == true);
img2.Visible = (((int)((System.Data.DataRowView)e.Item.DataItem)["Disponiveis"]) == 0);
ddl1.Visible=(((int)((System.Data.DataRowView)e.Item.DataItem)["Disponiveis"]) != 0);

for (int ct = 1; ct <= a; ct++)
{
ddl1.Items.Add(new ListItem(ct.ToString(),ct.ToString()));
}

}

}



protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "comprar")
{
DropDownList ddlqt = ((DropDownList)DataList1.FindControl("DropDownList1"));
string a = ddlqt.SelectedItem.Value;
Int32 qt = Int32.Parse(a);
decimal valor = ((decimal)((System.Data.DataRowView)e.Item.DataItem)["Valor"]);
decimal total = qt * valor;
int prod = ((int)((System.Data.DataRowView)e.Item.DataItem)["ID_Prod"]);
SqlConnection ligacao;
SqlCommand comando;
ligacao = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BDLojaConnectionString"].ConnectionString);
string inserir = "INSERT INTO [Vendas] ([Quantidade], [Produto], [Mes], [Data], [Total], [utilizador]) VALUES (" + qt + ", " + prod + ", " + DateTime.Now.Month.ToString() + ", " + DateTime.Now + ", " + total + ", " + Membership.GetUser(Page.User.Identity.Name).ProviderUserKey +")";
ligacao.Open();
comando = new SqlCommand(inserir, ligacao);
comando.ExecuteNonQuery();
ligacao.Close();




}
}
}

O problema surge quando, após escolher o valor pretendido e carregar no botão "Comprar. chega à linha "string a = ddlqt.SelectedItem.Value;" da função datalist1_itemcomand e estoura com o erro "object reference not set to an instance of an object".

o que é que está errado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não conheço muito bem o controlo DataList, mas eu diria que o que está a acontecer é que a DropDownList1 não está a ser encontrada, logo ddlqt é null e quando tentas aceder a uma das suas propriedades tens essa excepção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora