Vra

Ek werk op 'n webwerf wat sal oorskakel na 'n nuwe styl op 'n vasgestelde datum. Die webwerf se gebou in semantiese HTML en CSS, so die verandering net moet vereis dat 'n CSS verwysing verandering. Ek is besig met 'n ontwerper wat sal moet in staat wees om te sien hoe dit lyk, sowel as 'n kliënt wat sal moet in staat wees om die inhoud updates in die huidige voorkoms te hersien, asook die ontwerp vordering op die nuwe voorkoms.

Ek is van plan om 'n magie soektog string waarde en / of 'n javascript skakel in die voetskrif wat skryf uit 'n koekie om die nuwe CSS bladsy kies gebruik. Ons werk in ASP.NET 3.5. Enige aanbevelings?

Ek moet noem dat ons met behulp van Internet Explorer Voorwaardelike Kommentaar vir IE8, 7, en 6 ondersteuning. Ek kan 'n funksie wat 'n plaasvervanger doen skep:

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 7]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 6]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
<![endif]-->
Was dit nuttig?

Oplossing

In Asp.net 3.5, behoort jy in staat wees om op te rig die Link tag in die kop as 'n bediener tag. Dan in die codebehind jy kan die href eiendom vir die skakel element, wat gebaseer is op 'n koekie waarde, soektog string, datum, ens stel.

In jou ASPX lêer:

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

En in die Kode agter:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}

Ander wenke

Jy moet kyk na ASP.NET temas, dit is presies wat hulle gebruik vir. Hulle laat jou ook toe om vel kontroles, wat beteken dat hulle 'n stel van standaard kenmerke.

Ek stel voor die stoor van die style seleksie in die sessie so jy hoef nie te vertrou op die soektog string sleutel teenwoordig al die tyd. Jy kan die sessie in Page_Load kyk en voeg die toepaslike style verwysing. Dit klink soos hierdie is 'n tydelike / ontwikkeling situasie, so gaan met alles wat maklik en werk.

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);

Ek sou die volgende doen:

www.website.com/?stylesheet=new.css

Toe ek in jou ASP.NET kode:

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect(<Current Page>);
}

Toe waar jy definieer jou style:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top