PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por Red_Beret » Terça Jun 19, 2007 17:09
Boas
tenho uma dropdownlist dentro de uma datalist. só que não funciona bem
Code Snippet
- Código: Seleccionar todos
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);
...
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?
Editado pela última vez por
Red_Beret em Terça Jun 19, 2007 23:08, num total de 1 vez.
-
Red_Beret
- Membro Vitalício

-
- Mensagens: 2334
- Registado: Sexta Set 17, 2004 11:13
por SkylineGTR » Terça Jun 19, 2007 22:52
Não olhei muito para o código, mas em vez de usares o SelectedItem.Value usa só SelectedValue.
i7 920 | ASUS P6T Deluxe V2 | 6GB Corsair Dominator PC3-12800 | BFG GTX285 OC2 | 2x WD 640GB + WD 750GB + Seagate 750GB + Samsung F1 1TB | Corsair HX-620 | HP w2207 | Lian Li PC-V1110B
-
SkylineGTR
- Membro Vitalício

-
- Mensagens: 4184
- Registado: Terça Dez 28, 2004 22:26
por Red_Beret » Terça Jun 19, 2007 23:05
já descobri o erro.
está na linha
- Código: Seleccionar todos
DropDownList ddlqt = ((DropDownList)DataList1.FindControl("DropDownList1"));
é
- Código: Seleccionar todos
DropDownList ddlqt = ((DropDownList)e.Item.FindControl("DropDownList1"));
nem acredito que passei a tarde toda de volta disto e não vi o erro infantil
Já agora, alguem sabe aceder aos dados através da função
- Código: Seleccionar todos
DataList_ItemCommand(object source, DataListCommandEventArgs e)
O equivalente ao
- Código: Seleccionar todos
((int)((System.Data.DataRowView)e.Item.DataItem)["Disponiveis"])
usado na
- Código: Seleccionar todos
DataList_ItemDataBound(object sender, DataListItemEventArgs e)
-
Red_Beret
- Membro Vitalício

-
- Mensagens: 2334
- Registado: Sexta Set 17, 2004 11:13
Voltar para Programação
Quem está ligado:
Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante