Gridview uppdateras inte direkt ASP.net

Permalänk
Medlem

Gridview uppdateras inte direkt ASP.net

Har en gridview som är kopplad till en databas.

Det som sparas i databasen är tid och ett meddelande.

När jag trycker på en button 'post' så sparas det som ska sparas i databsen helt riktigt.
Men griden uppdateras inte direkt. Utan man måste kompilera på nytt för att man ska se det som lagts in under föregående körning.
Jag vill liksom att griden ska uppdateras direkt så fort en ny rad lagts till i det table som griden plockar från i databasen.

Permalänk
Medlem

Antingen får du ju köra något i postbacken.

if(PostBack)
{ getData(); }

Eller så får du googla på lite ajax

Visa signatur

...

Permalänk
Medlem

Precis som Hal0 skriver.. men kan tillägga/förtydliga,

vid postback ska du hämta ut data från din databas, sätta datasource och sen binda den till din gridview.

Typ så här,

gridView.DataSource = GetData();
gridView.DataBind();

GridView.DataBind Method (System.Web.UI.WebControls)

Visa signatur

EPoX 8RDA+, XP2500+, 2x256Mb PC3200 (DualCh), Club3D 9800PRO, Seagate 7200.7 160Gb 8Mb Limited edition

Permalänk
Medlem

Lägg din GridView i en UpdatePanel och sätt UpdateMode till Conditional. När du sedan har sparat ner något till databasen från sidan anropar du metoden Update() i din UpdatePanel.

Permalänk
Medlem

Jag har satt updatepanel till conditional och lagt gridviewen där i. Inga framsteg hittils...Saknar jag något?

protected void newPostBtn_Click(object sender, EventArgs e) { SqlConnection thisConnection = new SqlConnection(@Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True); thisConnection.Open(); SqlCommand cmd = thisConnection.CreateCommand(); cmd.CommandText = "INSERT INTO Post (Message, Time) VALUES (@Message, @Time)"; cmd.Parameters.Add("@Message", SqlDbType.VarChar, 200); cmd.Parameters.Add("@Time", SqlDbType.DateTime); cmd.Parameters["@Message"].Value = TextBox1.Text; cmd.Parameters["@Time"].Value = DateTime.Now; SqlDataSource1. cmd.ExecuteNonQuery(); thisConnection.Close(); Update(); } protected void Update() { UpdatePanel1.Update(); }

Permalänk
Medlem

Vad har du satt din DataSource till i din GridView?

Permalänk
Medlem

Det är ordnat...saknade bara en DataBind() innan jag kallade på updatemetoden.
Tack för hjälpen!