viftMedlem sedan feb. 20056 inlägg En annan grej jag funderat på är hur man på bästa sätt, genom tex en querystring, väljer vilken serverkontroll man vill visa.
Vet inte om det är ett dumt sätt att bygga upp en sida på men jag har iaf min index.aspx som bara innehåller mina tables och som sedan fylls i med olika serverkontroller så som header.ascx, menu.ascx etc. Men hur ska jag koda för att en speciell serverkontroll ska visas i min "maintabell" i index.aspx? Antar att jag behöver göra nån sorts case-sats, men hur??
tacksam för ett bra svar!
asmodieMedlem sedan jan. 2004501 inlägg Panels är ett tips för att visa och gömma olika komponenter som man ha på sidan. Vet inte om det är det du tänkte på.
ahlenMedlem sedan juli 200498 inlägg hej Vift,
Du skulle kunna lösa det med Select Case, men i det här fallet är nog If - then - else det bästa.
Kan visa ett exempel, dock kan det bli helt misslyckat då jag är ganska trött...
Du har en mapp med alla dina Web User Controls, vi kallar den för UC för enkelhetens skull.
Imports System.Web.UI
Imports System.Web.UI.WebControls
Public Class MinCodeBehind : Inherits Page
Protected WithEvents myPlaceHolder As Placeholder
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myControl As Control
If Request.Querystring("page")<>"" Then
If File.Exists("ab/" + Request.QueryString("page") + ".ascx") Then
myControl = CType((LoadControl("ab/" + Request.QueryString("page") + ".ascx")), Control)
Else
myControl = CType((LoadControl("ab/felsida.ascx")), Control)
End If
Else
myControl=Ctype((LoadControl("ab/start.ascx")), Control)
End If
myPlaceHolder.Controls.Add(myControl)
End Sub
End Class
Sedan har du en PlaceHolder där du vill ladda in sidan.
viftMedlem sedan feb. 20056 inlägg Tack!, löste det när jag började kolla på placeholder-grejen, var den jag saknade för att få det hela att gå ihop.
echoSweMedlem sedan nov. 20041 189 inlägg Finns det något sätt att få asp:panel att inte generera tabeller till layout??
renholmMedlem sedan apr. 20012 266 inlägg Gör den?
<asp:panel id="moo" runat="server">TEST</asp:panel>
Ger:
<div id="moo">
TEST
</div>
echoSweMedlem sedan nov. 20041 189 inlägg Ja, det gör den.
<form runat="server">
<asp:Panel ID="moo" runat="server">Moo!</asp:Panel>
</form>
Ger:
<body>
<form name="_ctl0" method="post" action="aspPanels2.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE" value="dDwxMDc1NzM1MDkzOzs+PlXmXHbGbrE3r5iyvVVOS1O1kXM=" />
<table id="moo" cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td>
Moo!
</td></tr></table>
</form>
</body>
Använder du 2.0? Har själv ställt om till 1.1 - men jag vet inte hur man ställer tillbka..
DinoMedlem sedan sep. 20011 914 inlägg Den renderar olika till olika webbläsare. Div till uplevel (IE) och table till downlevel(resten). Har för mig att det var så.
echoSweMedlem sedan nov. 20041 189 inlägg Haha, skulle firefox vara downlevel :D
Jo, det stämmer. IE får divven :(. Dålig stil!!
Går det att komma runt? Jag vill själv välja om jag ska skicka dålig kod, eller inte!
renholmMedlem sedan apr. 20012 266 inlägg Det kan vara anledningen, jag har satt Firefox till uplevel.
renholmMedlem sedan apr. 20012 266 inlägg Kika här: http://slingfive.com/pages/code/browserCaps
Upptäckte konstigt nog att jag faktiskt inte har satt FireFox till uplevel, utan det var på en annan site. Får dock fortfarande <div></div> som output. Använder version 1.1.4322.2032
echoSweMedlem sedan nov. 20041 189 inlägg 1.1.4322.573 använder jag...
//Henke
echoSweMedlem sedan nov. 20041 189 inlägg Jag drar upp den här tråden igen, eftersom jag har fortfarande inte hittat lösningen - hur fixar man det här? Jag vill inte ha en jobbig tabell för att visa något som en div hade gjort bättre.
emissionMedlem sedan dec. 19996 721 inlägg Browsercaps borde lösa renderingsproblemet, men i princip bör man ju använda en PlaceHolder i stället för en Panel för just detta ändamål.
...eller använd en literal, den tar inte så mycket resurser av servern (iofs gör inte de andra det heller mne för jämförandets skull..) =)
PaceMedlem sedan juni 20019 024 inlägg Eller lägg till <%@ Page ClientTarget="uplevel" %> på de sidor du vill tvinga att rendera till "uplevel". Kom dock ihåg att det kan få konstiga effekter eftersom mycket av formulärkoden (javascript) inte fungerar så bra i olika webbläsare. Därför är det klokt att använda downlevel på sidor där formulär används (eller utelämna parametern helt).