[ programiranjeCsharp @ 02.12.2017. 16:34 ] @
| Imam problema oko nekoliko stvari.
Kako da filtriram polja u datagridu kada se u textbox-u ukuca nesto, da ostane u datagridu samo ta jedna kolona gde se to nalazi.
Pokusavao sam nesto, radi pretraga samo sto se u datagridu ne pojavljuju podaci iz baze, vec samo prazne kolone.
Ne znam kako da pozovem listu sa datagridom i ubacim da se sve to filtrira. Evo koda ispod.
Hvala unapred !
private List<Servis> GetSevices(Klijent k)
{
sList = new List<Servis>();
conn.Open();
try
{
cmd = new SqlCommand();
cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT opisId, klijentId, datum, opis_servisa FROM opisServisa WHERE klijentId = '" + k.Id.ToString() + "'";
SqlDataReader reader;
reader = cmd.ExecuteReader();
textBoxOpis.AcceptsReturn = true;
while (reader.Read())
{
Servis s = new Servis();
s.ServisId = int.Parse(reader["opisId"].ToString());
s.KlijentId = int.Parse(reader["klijentId"].ToString());
s.Datum = reader["datum"].ToString();
s.OpisServisa = reader["opis_servisa"].ToString();
if (textBoxID.Text != string.Empty && s.KlijentId == int.Parse(textBoxID.Text))
{
sList.Add(s);
}
}
conn.Close();
}
catch (Exception err)
{
MessageBox.Show("", err.Message);
}
return sList;
}
----------------------------------------------------------------------------------------------------
private void textBox_TextChanged(object sender, TextChangedEventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter("select * from opisServisa", conn);
DataTable tabela = new DataTable();
da.Fill(tabela);
try
{
DataView dv = new DataView(tabela);
dv.RowFilter = string.Format("opis_servisa LIKE '%{0}%'", textBoxPretraga.Text);
dataGridServis.ItemsSource = dv;
}
catch (Exception err)
{
MessageBox.Show("", err.Message);
}
} |
[ ravni @ 03.12.2017. 07:53 ] @
Po cemu treba da se filtrira opisServisa - po klijentId ili po opis_servisa?
Taj dataGridServis - kog je tipa? Ni DataGridView ni DataGrid nemaju ItemsSource..
Probaj da stavis brejkpointe na razna mesta i vidis da li promanljive sadrze ono sto ti zelis.
[ Predrag Supurovic @ 03.12.2017. 07:57 ] @
Možda grešiš i pšristupu?
DataGrid treba da vežeš na DataSource a sva filtriranja da radiš na DataSource.
[ programiranjeCsharp @ 03.12.2017. 10:18 ] @
Treba da filtrira po polju opisu_servisa, a opisServisa je tabela.
Ovo je kod za combobox, kada se nesto izabera da prikaze sve vezano za to.
Sve ostalo radi, pokazuje podake u DataGridu kada se izabere neki korisnik.
A sto se tice pretrage ona radi, samo kada se kuca pretraga za neku rec izbacuje samo prazne kolone u kojima nema podataka. Kako da te podatke ucinim vidljivim?
private void comboBoxKlijent_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
List<Servis> servisList = new List<Servis>();
Klijent k = new Klijent();
conn.Open();
try
{
SqlDataReader reader;
cmd = new SqlCommand();
cmd = conn.CreateCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM Klijent WHERE naziv_klijenta='" + comboBoxKlijent.SelectedItem + "'";
reader = cmd.ExecuteReader();
while (reader.Read())
{
textBoxID.Text = reader["klijentId"].ToString();
textBoxNaziv.Text = reader["naziv_klijenta"].ToString();
textBoxTelefon.Text = reader["telefon"].ToString();
}
conn.Close();
}
catch (Exception err)
{
MessageBox.Show("SQL error" + err.Message);
}
try
{
k.Id = int.Parse(textBoxID.Text);
servisList = GetSevices(k);
this.dataGridServis.ItemsSource = servisList;
this.dataGridServis.DataContext = servisList;
}
catch (Exception err)
{
MessageBox.Show("" + err.Message);
}
}
[ ravni @ 04.12.2017. 08:12 ] @
Citat:
this.dataGridServis.ItemsSource = servisList;
this.dataGridServis.DataContext = servisList;
Ovde bi morao da se opredelis pa da koristis ili ItemsSource ili DataContext.
Sto se tice toga da ti se ne vidi sadrzaj - kolone liste ti verovatno pokazuju na pogresne propertije.
Uradi copy paste xaml fajla pa da vidimo.
[ programiranjeCsharp @ 04.12.2017. 16:53 ] @
Resicu nekako to na drugi nacin, samo jos mala pomoc oko ovog..
Kada izaberem u datagridu neku kolonu i hocu da je izmenim, izvrsi se izmena u svim kolonama.
U cemu gresim u ovom kodu ?
public void update(Servis s, SqlConnection conn)
{
conn.Open();
try
{
SqlCommand update = new SqlCommand();
update.Connection = conn;
update.CommandType = CommandType.Text;
update.CommandText = "update opisServisa set datum = @date, opis_servisa = @opis";
update.Parameters.AddWithValue("@date", s.Datum);
update.Parameters.AddWithValue("@opis", s.OpisServisa);
update.ExecuteNonQuery();
}
catch (Exception err)
{
MessageBox.Show("" + err.Message);
}
conn.Close();
}
--------------------------------------------------------------------------------------------------------
private void buttonIzmena_Click(object sender, RoutedEventArgs e)
{
try
{
if (dataGridServis.SelectedItem != null)
{
Servis s = (Servis)dataGridServis.SelectedItem;
if (textBoxID.Text != string.Empty)
{
s.KlijentId = int.Parse(textBoxID.Text);
s.OpisServisa = textBoxOpis.Text;
s.Datum = datePicker.Text;
s.update(s, conn);
}
else
{
MessageBox.Show("No ID");
}
}
MessageBox.Show("Izvrsili ste izmenu !");
}
catch (Exception err)
{
MessageBox.Show("", err.Message);
}
datePicker.Text = "";
textBoxOpis.Clear();
datePicker.Focus();
}
[ ravni @ 05.12.2017. 07:46 ] @
U update komandi nedostaje
WHERE klijentId =@klijentId
[ programiranjeCsharp @ 06.12.2017. 17:11 ] @
Da li je moguce kada se klikne na neko polje u datagridu i klikne dugme prikazi, da se svi podaci za to polje prikazu u pdf formatu ?
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.