Avatar billede decrypto Nybegynder
03. juni 2005 - 21:26 Der er 14 kommentarer og
1 løsning

Hvordan tømmer jeg et datagrid?

DGBesked.?????hvad
Avatar billede arne_v Ekspert
03. juni 2005 - 21:30 #1
Fjerner alle data i den bagvedliggende data source måske
Avatar billede snepnet Nybegynder
03. juni 2005 - 21:34 #2
du kan også bare sætte .DataSource = null, men er det fordi du gerne vil have vist en besked til brugeren i den situation du spørger som du gør ?
mvh
Avatar billede decrypto Nybegynder
03. juni 2005 - 22:44 #3
Jeg vil bare tømme det, da jeg submitter informationer til samme side, min liste opdaterer sig nemlig ikke automatisk. Jeg submitter og viser informationer på samme side, men man blive nødt til at refreshe manuelt, før jeg kan se det nye data i datagrid. Tænkte át jeg kunne tømme og genindlæse data, for at få den nye post med.
Avatar billede decrypto Nybegynder
04. juni 2005 - 11:12 #4
Hmmm det er ret frustrerende at at siden ikke opdaterer sig selv, når man har submittet en form, og man ikke kan se sin liste ved siden af blive ajourført.
Avatar billede decrypto Nybegynder
04. juni 2005 - 11:16 #5
Her er min kode:

        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here

            GuestBookBLL GB = new GuestBookBLL();   
            ArrayList GuestBookArr = GB.DoGetMessagesBLL();

            DataTable dt = new DataTable();
            DataRow dr;

            dt.Columns.Add(new DataColumn("Navn", typeof(string)));
            dt.Columns.Add(new DataColumn("Dato", typeof(DateTime)));
            dt.Columns.Add(new DataColumn("Email", typeof(string)));
            dt.Columns.Add(new DataColumn("Besked", typeof(string)));
           
            foreach(GuestEntryEntity GEE in GuestBookArr)
            {
                dr = dt.NewRow();

                dr[0] = GEE.GuestName.ToString();
                dr[1] = GEE.EntryDate.ToString();
                dr[2] = GEE.Email.ToString();
                dr[3] = GEE.Message.ToString();
                dt.Rows.Add(dr);
            }

            DGBesked.DataSource = dt;
            DGBesked.DataBind();
           
            //System.Web.HttpContext.Current.Response.Write("A");           
           
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.DGBesked.SelectedIndexChanged += new System.EventHandler(this.DGBesked_SelectedIndexChanged);
            this.fldBesked.ServerChange += new System.EventHandler(this.fldBesked_ServerChange);
            this.SendBtn.ServerClick += new System.EventHandler(this.SendBtn_ServerClick);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion


        private void SendBtn_ServerClick(object sender, System.EventArgs e)
        {
            GuestBookBLL GEE = new GuestBookBLL();
            GEE.SaveNewMessageBLL(fldNavn.Text, fldEmail.Text, fldBesked.Value.ToString());
            DGBesked.DataSource = null;
            System.Web.HttpContext.Current.Response.Redirect("gaestebog.aspx");
        }
Avatar billede decrypto Nybegynder
04. juni 2005 - 11:44 #6
Behøver jeg at lave en System.Web.HttpContext.Current.Response.Redirect("gaestebog.aspx");, bare for at tøme de udfyldte felter, og for at undgå dobbelt sbmit, hvis man manuelt opdaterer siden?
Avatar billede decrypto Nybegynder
04. juni 2005 - 14:07 #7
Jeg fatter ikke det der viewstate selv hvis jeg sætter det til false, så fremgår de indtastede værdier alligevel.
Avatar billede script Nybegynder
04. juni 2005 - 22:43 #8
Hej ude i menuen er der nogen der hedder autopostback, har du prøvet at rode lidt med den. Den kan sættes til true eller false
Avatar billede decrypto Nybegynder
05. juni 2005 - 10:05 #9
Prøver....
Avatar billede decrypto Nybegynder
05. juni 2005 - 10:10 #10
De var sat til false.
Avatar billede snepnet Nybegynder
06. juni 2005 - 08:08 #11
hej igen decrypto.
normalt bør du forsøge at bygge den slags sådan her :

// i page_load
if(!IsPostBack)
{
  DoYourBindingStuff();
}

// i handlere der medfører ændringer i data
// -- hvad der nu skal ske, og
DoYourBindingStuff();

// som så vil se ud som noget i denne retning
private void DoYourBindingStuff()
{
  // som noget af det du har nu, og
  DGBesked.DataSource = source;
  DGBesked.DataBind(); 
}

mvh
Avatar billede decrypto Nybegynder
09. juni 2005 - 20:36 #12
Men er det ikke det der sker i doShowGuestBook?

Prøv at se min kode.


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Security;
using gaestebog.BLL;
using gaestebog.DAL;

namespace gaestebog
{
    /// <summary>
    /// Summary description for gaestebogen.
    /// </summary>
    public class gaestebogen : System.Web.UI.Page
    {
        protected System.Web.UI.HtmlControls.HtmlInputButton SendBtn;
        protected System.Web.UI.WebControls.TextBox fldNavn;
        protected System.Web.UI.WebControls.TextBox fldEmail;
        protected System.Web.UI.HtmlControls.HtmlTextArea fldBesked;
        protected System.Web.UI.HtmlControls.HtmlForm SendFrm;
        protected System.Web.UI.WebControls.DataGrid DGBesked;

        private void doShowGuestBook(){
            GuestBookBLL GB = new GuestBookBLL();   
            ArrayList GuestBookArr = GB.DoGetMessagesBLL();

            DataTable dt = new DataTable();
            DataRow dr;

            dt.Columns.Add(new DataColumn("Navn", typeof(string)));
            dt.Columns.Add(new DataColumn("Dato", typeof(DateTime)));
            dt.Columns.Add(new DataColumn("Email", typeof(string)));
            dt.Columns.Add(new DataColumn("Besked", typeof(string)));
               
            foreach(GuestEntryEntity GEE in GuestBookArr)
            {
                dr = dt.NewRow();

                dr[0] = GEE.GuestName.ToString();
                dr[1] = GEE.EntryDate.ToString();
                dr[2] = GEE.Email.ToString();
                dr[3] = GEE.Message.ToString();
                dt.Rows.Add(dr);
            }

            DGBesked.DataSource = dt;
            DGBesked.DataBind();
        }

        private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here

            if(!(Page.IsPostBack))
            {
                //System.Web.HttpContext.Current.Response.Write("Førstegang");
                doShowGuestBook();
            }
           
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.DGBesked.SelectedIndexChanged += new System.EventHandler(this.DGBesked_SelectedIndexChanged);
            this.fldNavn.TextChanged += new System.EventHandler(this.fldNavn_TextChanged);
            this.fldEmail.TextChanged += new System.EventHandler(this.fldEmail_TextChanged);
            this.fldBesked.ServerChange += new System.EventHandler(this.fldBesked_ServerChange);
            this.SendBtn.ServerClick += new System.EventHandler(this.SendBtn_ServerClick);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion

        private void DGBesked_SelectedIndexChanged(object sender, System.EventArgs e)
        {
           
        }

        public void DGBesked_Page(Object sender, DataGridPageChangedEventArgs e)
        {
            DGBesked.CurrentPageIndex = e.NewPageIndex;
            doShowGuestBook();
        }


        private void SendBtn_ServerClick(object sender, System.EventArgs e)
        {
            GuestBookBLL GEE = new GuestBookBLL();
            GEE.SaveNewMessageBLL(fldNavn.Text, fldEmail.Text, fldBesked.Value.ToString());
            System.Web.HttpContext.Current.Response.Redirect("gaestebog.aspx");
            doShowGuestBook();
           
        }

        private void fldBesked_ServerChange(object sender, System.EventArgs e)
        {
       
        }

        private void fldEmail_TextChanged(object sender, System.EventArgs e)
        {
       
        }

        private void fldNavn_TextChanged(object sender, System.EventArgs e)
        {
       
        }

    }
}
Avatar billede snepnet Nybegynder
09. juni 2005 - 21:15 #13
hej :o)

SendBtn_ServerClick(...) laver du :

System.Web.HttpContext.Current.Response.Redirect("gaestebog.aspx");
doShowGuestBook();

den nederste linie vil ikke eksekvere da du ovenover redirecter med default - så den er der ikke rigtig nogen grund til.

når du er i en page-klasse, kan du for øvrigt bare nøjes med :
Response.Redirect("gaestebog.aspx");

men bortset fra det ... hvad er det så præcis der er dit problem med ovenstående ?

får du ikke indsat din nye række når du trykker på indsætknappen?
og hvad er det du ikke bryder dig om mht. til tekster i tekstbokse?
hvis du gerne vil tømme dem, kan du sætte teksten til null :
someTextBox.Text = null;

mvh
Avatar billede decrypto Nybegynder
14. juni 2005 - 20:45 #14
Mit irriterende problem er at jeg ikke kan se min nyeste entry lige umiddelbart efter tryk på min submit knap. Først efter at opdatere siden ved at trykke på F5, så dukker den op. Hvis jeg bliver ved med at trykke F5, så adder den den samme entry in igen og igen, selvom jeg har sat mine input felter til null.
Avatar billede snepnet Nybegynder
29. juni 2005 - 20:57 #15
hej decrypto .... bikse du stadig med noget her?
(smider et svar hvis du vil lukke)
mvh
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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