Listbox com asp.net - datavaluefield
18/02/2005
0
Resolvi testar o listbox para asp.net
Tenho um textbox, 4 listboxes e 1 button:
textbox- o usuário entra com um valor numérico qualquer
listbox1- o usuário seleciona um item qualquer
listbox2- através de sincronismo captura o índice do listbox1 e
identifica o valor correspondente ao selecionado no listbox1.
listbox3- o usuário seleciona um item a ser convertido
listbox4- através de sincronismo captura o índice do listbox3 e
identifica o valor correspondente ao selecionado no listbox3.
button- executa uma conta.
Pelo que vi parece ser possível eliminar os
listbox2 e listbox4, já que no object inspector
o datatextfield aponta para a coluna da tabela
que será exibida enquanto o datavaluefield aponta
para a coluna respectiva de valores
Se alguém puder explicar como eliminar os listbox2 e listbox4 e simplificar o código usando o datavaluefield agradeço
procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
ds: IDBDataSource;
unidadeatual: string;
novaunidade:string;
valor:string;
valor3:string;
item: ListItem;
item2:ListItem;
item3:ListItem;
item4:ListItem;
begin
if not IsPostBack then
begin
ListBox1.DataBind();
ListBox2.DataBind();
ListBox3.DataBind();
ListBox4.DataBind();
if DBWebDataSource1 is IDBDataSource then
begin
ds := DBWebDataSource1 as IDBDataSource;
unidadeatual := Convert.ToString(ds.GetColumnValue(Page, ´un_comprimento´, ´comprimento´));
valor:=Convert.Tostring(ds.GetColumnValue(Page,´un_comprimento´,´valor´));
novaunidade := Convert.ToString(ds.GetColumnValue(Page, ´un_comprimento´, ´comprimento´));
valor3:=Convert.Tostring(ds.GetColumnValue(Page,´un_comprimento´,´valor´));
if Assigned(unidadeatual) then
begin
item := ListBox1.Items.FindByText(unidadeatual);
item2:= ListBox2.Items.FindByText(valor);
item3:= ListBox3.Items.FindByText(novaunidade);
item4:= ListBox4.Items.FindByText(valor3);
ListBox1.SelectedIndex := Listbox1.Items.IndexOf(item);
ListBox2.SelectedIndex := Listbox2.Items.IndexOf(item2);
ListBox3.SelectedIndex := Listbox3.Items.IndexOf(item3);
ListBox4.SelectedIndex := Listbox4.Items.IndexOf(item4);
end;
end;
end;
end;
procedure TWebForm1.ListBox1_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
begin
ListBox2.SelectedIndex:=ListBox1.SelectedIndex;
end;
procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
entra:double;
begin
entra:=convert.ToDouble(txtEntra.Text);
conv:=Convert.ToDouble(ListBox2.Items.Item[ListBox2.SelectedIndex].Text);
conv2:=Convert.ToDouble(ListBox4.Items.Item[ListBox4.SelectedIndex].Text);
entra:=entra*conv/conv2;
Label1.Text:=entra.ToString;
end;
Tenho um textbox, 4 listboxes e 1 button:
textbox- o usuário entra com um valor numérico qualquer
listbox1- o usuário seleciona um item qualquer
listbox2- através de sincronismo captura o índice do listbox1 e
identifica o valor correspondente ao selecionado no listbox1.
listbox3- o usuário seleciona um item a ser convertido
listbox4- através de sincronismo captura o índice do listbox3 e
identifica o valor correspondente ao selecionado no listbox3.
button- executa uma conta.
Pelo que vi parece ser possível eliminar os
listbox2 e listbox4, já que no object inspector
o datatextfield aponta para a coluna da tabela
que será exibida enquanto o datavaluefield aponta
para a coluna respectiva de valores
Se alguém puder explicar como eliminar os listbox2 e listbox4 e simplificar o código usando o datavaluefield agradeço
procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
ds: IDBDataSource;
unidadeatual: string;
novaunidade:string;
valor:string;
valor3:string;
item: ListItem;
item2:ListItem;
item3:ListItem;
item4:ListItem;
begin
if not IsPostBack then
begin
ListBox1.DataBind();
ListBox2.DataBind();
ListBox3.DataBind();
ListBox4.DataBind();
if DBWebDataSource1 is IDBDataSource then
begin
ds := DBWebDataSource1 as IDBDataSource;
unidadeatual := Convert.ToString(ds.GetColumnValue(Page, ´un_comprimento´, ´comprimento´));
valor:=Convert.Tostring(ds.GetColumnValue(Page,´un_comprimento´,´valor´));
novaunidade := Convert.ToString(ds.GetColumnValue(Page, ´un_comprimento´, ´comprimento´));
valor3:=Convert.Tostring(ds.GetColumnValue(Page,´un_comprimento´,´valor´));
if Assigned(unidadeatual) then
begin
item := ListBox1.Items.FindByText(unidadeatual);
item2:= ListBox2.Items.FindByText(valor);
item3:= ListBox3.Items.FindByText(novaunidade);
item4:= ListBox4.Items.FindByText(valor3);
ListBox1.SelectedIndex := Listbox1.Items.IndexOf(item);
ListBox2.SelectedIndex := Listbox2.Items.IndexOf(item2);
ListBox3.SelectedIndex := Listbox3.Items.IndexOf(item3);
ListBox4.SelectedIndex := Listbox4.Items.IndexOf(item4);
end;
end;
end;
end;
procedure TWebForm1.ListBox1_SelectedIndexChanged(sender: System.Object; e: System.EventArgs);
begin
ListBox2.SelectedIndex:=ListBox1.SelectedIndex;
end;
procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
entra:double;
begin
entra:=convert.ToDouble(txtEntra.Text);
conv:=Convert.ToDouble(ListBox2.Items.Item[ListBox2.SelectedIndex].Text);
conv2:=Convert.ToDouble(ListBox4.Items.Item[ListBox4.SelectedIndex].Text);
entra:=entra*conv/conv2;
Label1.Text:=entra.ToString;
end;
N1
Curtir tópico
+ 0
Responder
Posts
18/02/2005
N1
Consegui,
Se alguém tiver dúvida parecida:
conv:=Convert.ToDouble(ListBox1.Items.Item[ListBox1.SelectedIndex].Value.ToString);
conv2:=Convert.ToDouble(ListBox3.Items.Item[ListBox3.SelectedIndex].Value.ToString);
Se alguém tiver dúvida parecida:
conv:=Convert.ToDouble(ListBox1.Items.Item[ListBox1.SelectedIndex].Value.ToString);
conv2:=Convert.ToDouble(ListBox3.Items.Item[ListBox3.SelectedIndex].Value.ToString);
Responder
Clique aqui para fazer login e interagir na Comunidade :)