webForumDet fria alternativet

Dölja delar av sidan

.NET

7 svar · 258 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

Hej!

Fråga1.
Jag sitter och pillar med ett poäng system som kräver att man får igenom 3 delar.

1. Välj lite grejjer från 4 st olika dropdownlist, skriv i en motivering
2. Godkänn poängen, valen man gjorde i steg 1 skrivs ut
3. Insert till en databas.

Som det är nu har jag byggt upp det korkat antar jag, för det känns inte alls så smidigt.

Jag har alla kontroller på sidan vid page load är alla i steg1 synliga, klickar man på knappen ok för att gå till steg hämtar jag värdena från steg1 och skriver ut dem, samtidigt som jag döljer de kontrollerna ifrån steg1.

Klickar jag på ja knappen nu på steg2 så döljer jag alla fält i steg2 (de i steg1 är ju redan dolda) och skriver ut ett meddelande om att man delade ut ett poäng.

Som det är nu har jag i varje steg x antal kontroller, ovanför varje kontroll skriver jag ut en rubrik (ligger inte i en kontroll) och om jag ska dölja allting i föregående steg så måste jag lägga rubrikerna i tex en literal. Det blir en himmla massa kontroller, det känns som det finns smidigare sätt att lösa detta på. Som att lägga varje steg i en datagrid (tror jag) och sätta hela den till hidden när man går till nästa steg. Men jag vet inte om jag ens är på rätt väg :(

Fråga2.
I page load på sidan (steg1) laddar jag in dvs data från en databas i 2 stycken dropdownlist kontroller. Jag hämtar ut allting så här, ser detta korrekt ut, det funkar men jag är inte hundra på att jag stängd allting och gjort allt korrekt

If Not Page.IsPostBack Then
strConn = ConfigurationSettings.AppSettings("strConn") 

Dim strSQL As String = String.Format("SELECT Pk_PointCategoryId, PointName FROM dbo.LL_pointCategorys ORDER BY PointName")
Dim myConnection As SqlConnection = New SqlConnection(strConn)
MyConnection.Open()
		  
Dim DsPoang AS DataSet = new DataSet()
Dim mySqlAdapter As SqlDataAdapter = new SqlDataAdapter(strSQL,myConnection)
mySqlAdapter.Fill(DsPoang,"LocalGrenar")
	
PointCategoryId.DataSource = DsPoang.Tables("LocalGrenar").DefaultView
PointCategoryId.DataTextField = "PointName" 
PointCategoryId.DataValueField = "Pk_PointCategoryId" 
PointCategoryId.DataBind() 

strSQL = String.Format("SELECT TOP 100 PERCENT PK_UsrId, UsrFirstName +' '+ UsrSurName AS UsrName FROM dbo.LL_users ORDER BY UsrName")		
mySqlAdapter  = New SqlDataAdapter(strSQL,myConnection)
mySqlAdapter.Fill(DsPoang,"LocalUsrs")
		
FkUsrId.DataSource = DsPoang.Tables("LocalUsrs").DefaultView
FkUsrId.DataTextField = "UsrName" 
FkUsrId.DataValueField = "PK_UsrId" 
FkUsrId.DataBind() 
		
MyConnection.Close()
MyConnection.Dispose()
MyConnection = Nothing
  
End If
Medlem sedan apr. 20012 266 inlägg
#2

Fråga 1: Har två förslag, dela upp de olika delarna i .ascx som sedan anropas från huvudsidan vid rätt tillfälle. Om det blir för krångligt kan du lägga kontrollerna för de olika delarna i en <asp:panel> och då behöver du bara bestämma om panelen är synlig eller ej.

Fråga 2: Hittar inget nu, med reservation för vad klockan är :)

Medlem sedan dec. 19996 522 inlägg
#3

Tack renholm, lägga dem i olika ascx filer måste jag ju lära mig någon gång, varför inte nu. Hur gör man :)

Medlem sedan juni 20011 732 inlägg
#4

Jag föreslår att du använder panels istället eftersom du inte behöver återanvända kontrollerna på andra sidor. Det är otroligt enkelt att använda panels... lägg all kod som ska döljas/visas mellan en paneltagg (där kan du ha både asp.netkontroller och vanlig html).

<asp:panel ID="Panel1" runat="server">
  kod...
</asp:panel>
<asp:panel ID="Panel2" runat="server">
  annan kod...
</asp:panel>
<asp:panel ID="Panel3" runat="server">
  mera kod...
</asp:panel>

//sen döljer/visar du dem vid olika events:
Panel1.Visible=true;
Panel2.Visible=false;
Panel3.Visible=false;
Medlem sedan dec. 19996 522 inlägg
#5

Tack Network, Ja jag har gjort det som panels. Det fungerade skitsmidigt, men jag undrar om någon har en länk till dit man kan läsa om att använda ascx filer och executa dem vid events.
Tack för hjälpen

Medlem sedan juni 20011 732 inlägg
Medlem sedan dec. 19996 522 inlägg
#7

Response.Write("Tack");

Medlem sedan juni 20011 732 inlägg
#8

:e

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)