icaaqMedlem sedan okt. 20005 273 inlägg ok, efter att jag byggt upp en tabell med Response.Write ;) HÄR Så har jag gett mig på dynamiskt uppbyggda tabeller :)
Men hur gör man ifall man vill ha en <tr> med colspan="2" och sen resten av <tr> utan.
Man bör väl kunna använda en "template" men jag vet inte riktigt hur man gör.
Hoppas ni kan hjälpa mig in på rätt spår :)
Han-SoloMedlem sedan jan. 2001290 inlägg Har inte tillgång till mina filer just nu... men jag antar att du är ute efter nått liknande jag gjorde i veckan...
1. Använd dig av <asp:Table> i aspx sidan... ja du kan använda asp:TableRow och asp:TableCell oxå för att tjorvatill cellerna som du vill ha dem.
2. Nu kan du (ifall du minst har <asp:Table>) kommaåt tabellen från code behind sidorna...
new TableRow()
new TableCell()
osv...
på så vis kan man möblera till tabeller efter tycke och smak... DYNAMISKT!!!
/Var det svar nog?
icaaqMedlem sedan okt. 20005 273 inlägg hmmm....
Jag tänkte mer att jag skulle använda header, item och Footer template.....
och sedan kanske fa sa att headertemplaten bara har en cell, sedan lista alla manadens dagar i itemtemplaten och sedan en snygg avslutning med footer.
ps mitt tangentbord fick spel sa jag kan inte skriva ordentligt ds
renholmMedlem sedan apr. 20012 266 inlägg Du kan definera colspan i style="". Lägg bara till style="padding-left: 10px; padding-right: 10px; padding-top: 5px; padding-bottom: 5px".
icaaqMedlem sedan okt. 20005 273 inlägg Jag vet inte om jag är ute och cyklar men när jag försöker att göra så här får jag inte upp några "padding" alternativ :l
[red]
Style s = new Style();
s.
[/red]
hur menar du att jag ska göra :q
icaaqMedlem sedan okt. 20005 273 inlägg Jag fixade det.... :e
[red]int numrows;
int numcells = 2;
CultureInfo cultSwe = new CultureInfo("sv-SE");
DateTime dtedate = DateTime.Now;
numrows = DateTime.DaysInMonth(dtedate.Year, dtedate.Month);
DateTime dteDay = new DateTime(dtedate.Year, dtedate.Month, 1);
//Style s = new Style();
//s.
TableRow row1 = new TableRow();
TableCell cell1 = new TableCell();
cell1.Controls.Add(new LiteralControl(dteDay.Date.ToString("y", cultSwe)));
[b]cell1.ColumnSpan = 2;[/b]
row1.Cells.Add(cell1);
Table2.Rows.Add(row1);
for (int j=0; j<numrows; j++)
{
TableRow r = new TableRow();
TableCell c = new TableCell();
c.Controls.Add(new LiteralControl(dteDay.Date.ToString("dd", cultSwe)));
r.Cells.Add(c);
TableCell d = new TableCell();
d.Controls.Add(new LiteralControl(dteDay.Date.ToString("dddd", cultSwe)));
r.Cells.Add(d);
Table2.Rows.Add(r);
dteDay = dteDay.AddDays(1);
}
[/red]
Nu kan jag köra vidare lite till :)
icaaqMedlem sedan okt. 20005 273 inlägg styles
Tjenare igen..... hehe
nu har jag denna:
[red]
Style sDatum = new Style();
[b]sDatum.Width = 10;[/b]
sDatum.Font.Name = "Verdana";
sDatum.Font.Size = 10;[/red]
men hur skriver jag in att jag vill ha 10% ?
icaaqMedlem sedan okt. 20005 273 inlägg Jag fixade även det.
[red]
Style sDatum = new Style();
sDatum.Width = Unit.Percentage(10);
sDatum.Font.Name = "Verdana";
sDatum.Font.Size = 10;[/red]
:)
PaceMedlem sedan juni 20019 024 inlägg Du fixar det mesta icaaq. :e
icaaqMedlem sedan okt. 20005 273 inlägg Tillbax :e
Jag har denna
[red]
TableRow row1 = new TableRow();
TableCell cell1 = new TableCell();
TableCell cell2 = new TableCell();
cell1.Controls.Add(new LiteralControl(dteDay.Date.ToString("y", cultSwe)));
cell1.ApplyStyle(sManad);
row1.Cells.Add(cell1);
cell2.Controls.Add(new ??? [b]Här vill jag köra doLinks(dtedate)[/b]
cell2.HorizontalAlign = HorizontalAlign.Right;
Table2.Rows.Add(row1);[/red]
Hur ska jag skriva för att kunna köra en funktion i dynamisk cell?
icaaqMedlem sedan okt. 20005 273 inlägg Tjenare igen alla .Net:are!!
Nu har jag kommit så här långt
[red]
private void Page_Load(object sender, System.EventArgs e)
{
// Deklarerar lite variabler
int numrows;
string path = Request.FilePath;
CultureInfo cultSwe = new CultureInfo("sv-SE");
// Kollar lite datum
DateTime dtedate = DateTime.Now.Date;
if (Request.QueryString["dteDate"] != null)
{
dtedate = Convert.ToDateTime(Request.QueryString["dteDate"]);
}
numrows = DateTime.DaysInMonth(dtedate.Year, dtedate.Month);
DateTime dteDay = new DateTime(dtedate.Year, dtedate.Month, 1);
// Skapar en style för datumet
Style sDatum = new Style();
sDatum.Width = Unit.Percentage(10);
sDatum.Font.Name = "Verdana";
sDatum.Font.Size = FontUnit.XSmall;
sDatum.BorderWidth = Unit.Pixel(1);
sDatum.BorderColor = Color.Coral;
sDatum.BorderStyle = BorderStyle.Dotted;
// Skapar en style för år och månad
Style sArManad = new Style();
sArManad.Width = Unit.Percentage(10);
sArManad.Font.Name = "Verdana";
sArManad.Font.Size = FontUnit.XSmall;
sArManad.BorderWidth = Unit.Pixel(1);
sArManad.BorderColor = Color.Coral;
sArManad.BorderStyle = BorderStyle.Dotted;
// Skapar en style för Länkarna
Style sLank = new Style();
sLank.Width = Unit.Percentage(90);
sLank.Font.Name = "Verdana";
sLank.Font.Size = FontUnit.XSmall;
sLank.BorderWidth = Unit.Pixel(1);
sLank.BorderColor = Color.Coral;
sLank.BorderStyle = BorderStyle.Dotted;
// Skapar en style för veckodagarna
Style sVeckoDagar = new Style();
sVeckoDagar.Width = Unit.Percentage(90);
sVeckoDagar.Font.Name = "Verdana";
sVeckoDagar.Font.Size = FontUnit.XSmall;
sVeckoDagar.BorderWidth = Unit.Pixel(1);
sVeckoDagar.BorderColor = Color.Coral;
sVeckoDagar.BorderStyle = BorderStyle.Dotted;
// Skapar en style för månaden
Style sManad = new Style();
sManad.Font.Name = "Verdana";
sManad.Font.Size = FontUnit.XSmall;
sManad.BorderWidth = Unit.Pixel(1);
sManad.BorderColor = Color.Coral;
sManad.BorderStyle = BorderStyle.Dotted;
// Skapar en style för söndagar
Style sSondag = new Style();
sSondag.Font.Name = "Verdana";
sSondag.Font.Size = FontUnit.XSmall;
sSondag.BorderWidth = Unit.Pixel(1);
sSondag.BorderColor = Color.Coral;
sSondag.BorderStyle = BorderStyle.Dotted;
sSondag.BackColor= Color.PeachPuff;
/* Börjar bygga tabellen genom att visa månad och sedan länkarna till
angränsande månader*/
TableRow row1 = new TableRow();
TableCell cell1 = new TableCell();
cell1.Controls.Add(new LiteralControl(doLinks(dtedate, path)));
cell1.ColumnSpan = 2;
cell1.HorizontalAlign = HorizontalAlign.Center;
cell1.ApplyStyle(sLank);
row1.Cells.Add(cell1);
Table2.Rows.Add(row1);
// Lägger till dagarna i månaden
for (int j=0; j<numrows; j++)
{
TableRow r = new TableRow();
TableCell c = new TableCell();
c.Controls.Add(new LiteralControl(dteDay.Date.ToString("dd", cultSwe)));
if (dteDay.Date == DateTime.Now.Date)
{
c.Controls.Add(new LiteralControl("«"));
}
if (dteDay.DayOfWeek == 0)
{
c.ApplyStyle(sSondag);
}
else
{
c.ApplyStyle(sDatum);
}
r.Cells.Add(c);
TableCell d = new TableCell();
d.Controls.Add(new LiteralControl(dteDay.Date.ToString("dddd", cultSwe)));
if (dteDay.DayOfWeek == 0)
{
d.ApplyStyle(sSondag);
}
else
{
d.ApplyStyle(sVeckoDagar);
}
r.Cells.Add(d);
Table2.Rows.Add(r);
dteDay = dteDay.AddDays(1);
}
}
static string doLinks(DateTime dteDate, string Path)
// Denna funktion fixar till länkarna till angränsande månader
{
CultureInfo cultSwe = new CultureInfo("sv-SE");
return "<a href=\""+Path+"?dteDate="+dteDate.AddMonths(-1)+ "\" title=\""+dteDate.Date.AddMonths(-1).ToString("y", cultSwe)+ "\">«</a> "+ dteDate.Date.ToString("y", cultSwe)+" <a href=\""+Path+"?dteDate="+dteDate.AddMonths(1)+ "\" title=\""+dteDate.Date.AddMonths(1).ToString("y", cultSwe)+"\">»</a>";
}[/red]
Men jag har lite funderingar:
- Hur gör jag om jag vill göra en tabell till i en dynaimskt uppbyggd cell?
- Om ni tittar på koden ovanför vad kan jag göra för att optimera den?
- Tycker ni att jag är jobbig ;) ?
NETworkMedlem sedan juni 20011 732 inlägg Rent spontant så skulle jag nog ha mina css-klasser i ett vanligt css-dokument istället om du inte uutyckligen behöver sätta dem dynamiskt. Dels blir det en massa kod, dels kan måste du kompilera sidan om du vill ändra i dem.
I din sista funktion dolinks säger jag samma sak som tidigare; undvik att returnera htmlkod, inte för prestandans skull men för översiktligheten och dynamiken. Rätt var det är så vill man komma åt den där länken (kanske inte händer i detta fallet men ändå) och då är det en bra vana att alltid använda asp.net-kontroller. Returnera en <asp:hyperlink> istället.
Jag vågar inte på rak arm svara på hur du gör en tabell i en dynamisk tabell från koden, någon annan kanske vet. Annars får vi hjälpas åt att lösa det senare om du inte fixar det själv. :)
icaaqMedlem sedan okt. 20005 273 inlägg YEEAAA!!
Jag fick det att funka ..... :e
Det var bara att göra en annan tabell först och sedan sätta in den, så här
[red]
Table Table3 = new Table();
TableRow row2 = new TableRow();
TableCell cell3 = new TableCell();
cell3.Controls.Add(new LiteralControl(doLinks(dtedate, path)));
cell3.ColumnSpan = 2;
cell3.HorizontalAlign = HorizontalAlign.Center;
cell3.ApplyStyle(sLank);
row2.Cells.Add(cell3);
Table3.Rows.Add(row2);
TableRow row1 = new TableRow();
TableCell cell1 = new TableCell();
cell1.Controls.Add([b]Table3[/b]);
cell1.ColumnSpan = 2;
cell1.HorizontalAlign = HorizontalAlign.Center;
cell1.ApplyStyle(sLank);
row1.Cells.Add(cell1);
Table2.Rows.Add(row1);[/red]
Nu kan jag köra vidare........brooom
icaaqMedlem sedan okt. 20005 273 inlägg Formtaggen :OO
Jag håller nu på med ett formulär men jag får inte in en listbox där jag vill ha den ........alltså mellan <form> </form> om jag visar lite kod kanske ni förstår bättre:
Här gör jag en listbox.
[red]
ListItem lSkala = new ListItem("0", "0");
ListBox lBox = new ListBox();
for (int i=0; i == 100; i++ )
{
lBox.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
lBox.Attributes.Add("runat", "server");[/red]
Och sedan gör jag en HtmlForm
[red]
HtmlForm lForm = new HtmlForm();
lForm.Enctype = "text/plain";
lForm.Method = "post";
lForm.Attributes.Add("runat", "server");
[/red]
Sen när jag ska stoppa in den i tabellen gör jag följande
[red]
TableRow row2 = new TableRow();
TableCell cell2 = new TableCell();
TableCell cell3 = new TableCell();
cell2.Controls.Add(new LiteralControl("Skala 0 till 100%"));
cell2.ApplyStyle(sLank);
cell2.HorizontalAlign = HorizontalAlign.Left;
row2.Cells.Add(cell2);
cell3.Controls.Add(lForm);
cell3.Controls.Add(lBox);
cell3.ApplyStyle(sLank);
cell3.HorizontalAlign = HorizontalAlign.Left;
row2.Cells.Add(cell3);
tInsert.Rows.Add(row1);
tInsert.Rows.Add(row2);[/red]
Hur ska jag göra föra att form taggen inte ska stängas på en gång :q
renholmMedlem sedan apr. 20012 266 inlägg Eftersom du endast kan ha en server kontrollerad <form> så måste en och samma <form> omsluta hela sidan.
<body>
<form runat="server">
<!-- Sidan -->
</form>
</body>
icaaqMedlem sedan okt. 20005 273 inlägg nja...jag löste det som så att jag la dit den i HtmlForm:en så här
[red]lForm.Controls.Add(lSkala);[/red]
Men jag kan på nått sätt inte infoga datan som jag har i listboxen till DropDownListen.....
Nån som har nån idé?
PS nu går jag och lägger mig.....
icaaqMedlem sedan okt. 20005 273 inlägg Jag fixade även det :e
Jag hade glömt dataBindingen... :r