webForumDet fria alternativet

Avläsa varje loop

7 svar · 343 visningar · startad av echoSwe

echoSweMedlem sedan nov. 20041 189 inlägg
#1

Tjena!

Jag vill använda en repeater, datalist, datagrid (med tillhörande odbcreader eller odbcdataadapter/datasets) för att kontrollera varje rad som kommer från en databastabell. Jag vill kunna avläsa värdet på varje rad

DataTable dt;
DataColumn dc;
DataRow dr;
string strThis;
while (mReader.Read()) {
strThis = mReader.GetString();
if (Convert.ToInt32(strThis) == 1)
else {
//<tr> ska vara cyan - typ: dr.Attributes.Add("background-color:cyan;", style);
}
dr.Columns.Add(...) //första cellen
strThis = mReader.GetString();
dr.Columns.Add(new LiteralControl(strThis)); //andra cellen
//...osv till typ 5 kolumner eller fler
dt.Rows.Add(dr); //in med allt i denna rad i tabellen
}
protected DataGrid dgNyheter; //används i min aspx fil
private DataView dv = (DataView)dt;
dgNyheter.DataSource = dv;

denna data vill jag infoga i en <table> och beroende på om kolumnen "status" i tabellen från databasen har värdet 1 eller 0 så vill jag färga <tr> i <table>. (style="background-color:cyan; till exempel)
Mot slutet ska alla <tr> som är inaktiva vara cyan då, medan resten ska vara vita. Jag vill även kunna redigera varje inviduell post för sig, fast med fler värden än de som visas i orginaltabellen. (tex. på cdon.com så klickar du på en artikel i deras sortiment, och detaljerad info kommer upp över den)

Finns det något smidigt sätt att göra detta? En repeater är ju enbart för att visa data, och så vitt jag fattar så kan man inte manipulera själva tabellen utifrån vilken data som hämtas, utan bara innan datan hämtas.

Men min fråga är hur man anpassar hur <tr> ser ut beroende på vilken data man får från den aktiva cellen?

Ett DataGrid eller en <asp:Table>? Någon som har en idé?

cyprysMedlem sedan dec. 20003 563 inlägg
#2

Utmärkt läge att använda en datagrid. :)
Allt det du kodat själv blir så mycket enklare. Du binder din data till en datagrid och kontrollerar varje rad vid utskrift m.h.a. onitemdatabound.

--- .aspx
<asp:datagrid OnItemDataBound="checkRow"></asp:datagrid>

--- .cb
Sub checkRow(sender as object, e as datagrideventargs)
if e.item.cells(0).text = 1 then
  e.item.backcolor = system.drawing.color.cyan
end if
End Sub

För redigering fungerar datagridens edittemplate alldeles utmärkt. Finns mycket att läsa och exempel att läsa på nätet om den. asp.net t.ex. ;)

echoSweMedlem sedan nov. 20041 189 inlägg
#3

;) älskar .net... det var ju jättesmidigt

(anledningen till denna kärleksyttring är att jag för tillfället jobbar med en klient i ASP som är heeemskt i och med all spagettikod :))

echoSweMedlem sedan nov. 20041 189 inlägg
#4

DataGridItemEventArgs ska de va

echoSweMedlem sedan nov. 20041 189 inlägg
#5

Hur väljer man en färg hexadecimalt??

andreas_lindhMedlem sedan jan. 20011 140 inlägg
#6
e.item.backcolor = System.Drawing.ColorTranslator.FromHtml("#000000")
echoSweMedlem sedan nov. 20041 189 inlägg
#7

:) tack för det

echoSweMedlem sedan nov. 20041 189 inlägg
#8

Finns det något sätt att ta ut värdet ur en cell som inte ska vara med i DataGrid?

Jag vill ta ut ett värde från en databascell som heter www och lägga in innehållet i en länk kring namnet på sidan, som i sin tur läggs in i min datagrid.

När detta är löst så vill jag koppla länkarna som jag lägger runt datan till funktioner i min codebehind. Så att om jag tex. klickar på "ta bort" eller "makulera" eller liknande så ska dessa anropa funktioner på servern.

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)