Avatar billede nat Nybegynder
10. november 2005 - 11:52 Der er 17 kommentarer og
1 løsning

c# datagrid, få fat i værdi

Hej Eksperter,

Jeg har et datagrid (DGrid1), og her vil jeg gerne have fat i den værdi den første kolone har (går ud fra at det er [0]), værdierne kommer fra en database igennem et dataset (ds).

Hvordan er det nu lige at jeg skriver det?
Avatar billede nat Nybegynder
10. november 2005 - 13:13 #1
Jeg vil sammenligne værdien med en anden værdi, og derefter formattere teksten i gridet til en anden
Avatar billede nat Nybegynder
10. november 2005 - 14:00 #2
Jeg gør følgende, men det virker ikke. Værdien 1 bliver ikke replacet med ja, således at der står Ja i datagridet i stedet for 1. Hvad gør jeg galt?

DGrid1.DataBind();

foreach(DataGridItem dataGridItem in DGrid1.Items)
{

string indryk = dataGridItem.Cells[5].Text;
if (indryk == "99")
{
dataGridItem.Cells[5].Text = indryk.Replace("1", "Ja");
}
}
Avatar billede dr_chaos Nybegynder
15. november 2005 - 08:35 #3
DGrid1.DataBind();

foreach(DataGridItem dataGridItem in DGrid1.Items)
{

string indryk = dataGridItem.Cells[5].Text;
if (indryk == "99")
{
dataGridItem.Cells[5].Text = "Ja";
}
}
Avatar billede dr_chaos Nybegynder
15. november 2005 - 08:36 #4
prøv det for at se om du overhovedet kommer ind i et tilfælde for  dataGridItem.Cells[5].Text er "99".
Avatar billede dr_chaos Nybegynder
15. november 2005 - 08:37 #5
har  dataGridItem.Cells[5].Text kun værdien 99 stående ? eller står der mere i feltet ?
Avatar billede nat Nybegynder
16. november 2005 - 09:49 #6
Jeps, eller der kan også stå andre tal end 99, men i tilfældet af at det er 99 vil jeg gerne erstattet det.

Tror du jeg skal lave en Trim() på den???
Avatar billede nat Nybegynder
16. november 2005 - 09:50 #7
ps. jeg kommer ind i if - det er det der er så mærkeligt... Burde det betyde noget at værdierne kommer fra en db? Nej vel?
Avatar billede dr_chaos Nybegynder
16. november 2005 - 09:52 #8
du forsøger at erstatte et 1 tak i et felt hvor der ikke står et 1 tal.
derfor kommer du ind i if sætningen men der sker ikke mere end det.
er det celle[5] hvor du skal skal foretage erstatningen af tegn ?
Avatar billede nat Nybegynder
16. november 2005 - 09:58 #9
I tilfælde af at tallet i celle[5] er et andet kommer jeg ikke ind i if-sætningen..

Men ja det er i celle[5] jeg ønsker at erstatter "99" med "Ja"
Avatar billede dr_chaos Nybegynder
16. november 2005 - 10:02 #10
burde gøre det.

DGrid1.DataBind();

foreach(DataGridItem dataGridItem in DGrid1.Items)
{

string indryk = dataGridItem.Cells[5].Text;
if (indryk == "99")
{
dataGridItem.Cells[5].Text = "Ja";
}
}
Avatar billede nat Nybegynder
16. november 2005 - 10:15 #11
hmmm, det hjalp ikke :(

har også prøvet at rykke databind ned til efter foreach, men intet held....
Avatar billede dr_chaos Nybegynder
16. november 2005 - 10:18 #12
hvor på din side bruger du :

DGrid1.DataBind();

foreach(DataGridItem dataGridItem in DGrid1.Items)
{

string indryk = dataGridItem.Cells[5].Text;
if (indryk == "99")
{
dataGridItem.Cells[5].Text = "Ja";
}
}
altså i hvilken en funktion kalder du det ?
Avatar billede nat Nybegynder
16. november 2005 - 10:41 #13
Den ligger i en button_click metode, som bliver kaldt i Page_load:

private void Page_Load(object sender, System.EventArgs e)
{   
if (!Page.IsPostBack)
{
               
Button_Search_Click(null, null);
               
}
Avatar billede dr_chaos Nybegynder
16. november 2005 - 10:44 #14
prøv lige at paste hele din kode her ind.
bare for codebehind.
Avatar billede nat Nybegynder
16. november 2005 - 11:08 #15
public class Vare : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DGrid1;

private void Page_Load(object sender, System.EventArgs e)
        {   
            if (!Page.IsPostBack)
            {
                BT_Soeg_Click(null, null);
            }
           
            Page.DataBind();
        }
private void BT_Soeg_Click(object sender, System.EventArgs e)
        {
            try
            {
OracleConnection oc = new OracleConnection(WebAppConfig.OracleConnStr);
string sql = "select * from vare"
OracleCommand ocom = new OracleCommand(sql, oc);

                ocom.CommandType = CommandType.Text;
               
                OracleDataAdapter oda = new OracleDataAdapter(ocom);

                DataSet ds = new DataSet();
       
                oda.Fill(ds, "vare");

                DG_ordre.DataSource = ds;
                DG_ordre.DataBind();

foreach(DataGridItem dataGridItem in DGrid1.Items)
                {

                    string indryk = dataGridItem.Cells[5].Text;
                    if (indryk == "99")
                    {
                        dataGridItem.Cells[5].Text = "Ja";
                    }
                }

               
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Write(ex);
            }       

                       
        }
}
}
Avatar billede dr_chaos Nybegynder
16. november 2005 - 12:45 #16
prøv at fjerne  Page.DataBind();
Avatar billede nat Nybegynder
16. november 2005 - 12:58 #17
nice :-) Det gjorde tricket.

Smid et svar dr_chaos, så får du de velfortjente point
Avatar billede dr_chaos Nybegynder
16. november 2005 - 13:19 #18
svar :)
godt at det lykkedes at hjælpe dig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester