Jeg har et Gridview som består af en masse koncerter, når man klikker på en af koncerterne kommer man ind og kan skrive og se kommentare om den valgte koncert, jeg vil gerne lave så der er en label(LblCount) i hver række i gridviewet som counter hvor mange kommentare der er i den anden tabel, tabellerne har relation via ConcertID.
Jeg har lavet den stored procedure: @ConcertID int AS SELECT COUNT(*) As Antal FROM FetusConComment WHERE ConcertID = @ConcertID RETURN
og den kan hentes fra min dal klasse: dal.GetScalar("CountAll").ToString();
men hvordan får jeg sat det ind i gridviewet og i hvilket Event skal hele koden ligge? ..håber i forstår og kan hjælpe
hmm kan ikke helt få det til at virke, virker kun hvis det er en label uden fra gridviewet og under: SelectedIndexChanged
med denne kode: string ID = GridView1.SelectedDataKey.Value.ToString(); dal.ClearParameters(); dal.AddParameter("ConcertID", ID, DbType.Int32); LblCount.Text = dal.GetScalar("CommentCount").ToString();
har du kigget på kodet til det eksempel som viser hvordan man tilgår en værdi i en række ? void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e) {
if(e.Row.RowType == DataControlRowType.DataRow) { // Display the company name in italics. e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
for (int i = 0; i < GridView1.Rows.Count; i++) { e.Row.Cells[i].Text = "<i>" + e.Row.Cells[i].Text + "</i>"; } til at starte med, og så derefter få sat counten ind i stedet for: "<i>" + e.Row.Cells[i].Text + "</i>";
men kan ikke få den nuværende loop til at virke fordi den der rows.count åbenbart er forkert?
"åbenbart forkert" ? hvordan ser du det ? husk jeg ikke kan se din skærm Dette duer jo ikke i en fritstående loop da e er en parameter fra RowDataBound eventet.
derinde ( i handleren for RowDataBound): e.Row.Cells[1].Text = dal.GetScalar("CommentCount").ToString()
og din ConcertID , hvis den er i DataKeyNames for gridviewet, kan du få fat i fra GridView1.DataKeys(e.Row.RowIndex).Value
int ID = GridView1.DataKeys(e.Row.RowIndex).Value; dal.AddParameter("ConcertID", ID, DbType.Int32); e.Row.Cells[1].Text = dal.GetScalar("CommentCount").ToString();
fejl: "datakeys is a property but used like a method"
tror jeg skal have det vist før jeg kan få det fikset desværre.
plejer også at søge når den finder fejl men synes det er svært at finde noget til det her, og rimelig ny i at bruge SDK'en
den siger at det er et object så, og hvis jeg konvertere det til int siger den noget med connectionen stadig er åben?
Synes godt om
Ny brugerNybegynder
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.