Just nu i M3-nätverket
Jump to content

Serverside


michael

Recommended Posts

Skulle vilja kunna uppdatera en Label beroende på vilken rad man väljer i en DropDown. Borde inte detta gå att göra serverside, dvs via code behind? Har testat följande;

Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
       Label1.Text = DropDownList1.SelectedItem.Value
   End Sub

Tycker att detta bör funka.

 

Har installerat IIS och .NET på min maskin hemma. Förrut har jag kört på jobbet och där har jag för mig att det funkade.

(kan inte kolla eftersom jag inte jobbar där längre)

 

Mycket tacksam om nån kan klargöra detta för mig.

 

 

..me...

 

Link to comment
Share on other sites

Magnus Gladh

Tycker det ser korrekt ut.

 

Du skulle inte vilja visa hela koden både för ASPX sidan och din .VB fil.

 

- Magnus

-----------------------------------------------------

Ropen skalla, BBB (eller BOSTREAM) åt alla!!!

 

Link to comment
Share on other sites

Visst borde det funka?! Fattar inte vad det är. Nån iställning på IIS'en?

 

aspx-koden:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="Lustjakt.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
	<title>WebForm1</title>
	<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
	<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
	<meta content="JavaScript" name="vs_defaultClientScript">
	<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
	<form id="Form1" method="post" runat="server">
		<asp:label id="Label1" style="Z-INDEX: 101; LEFT: 200px; POSITION: absolute; TOP: 155px" runat="server">Label</asp:label><asp:button id="Button1" style="Z-INDEX: 103; LEFT: 425px; POSITION: absolute; TOP: 180px" runat="server" Text="Button"></asp:button>
		<asp:dropdownlist id="DropDownList1" style="Z-INDEX: 102; LEFT: 422px; POSITION: absolute; TOP: 121px" runat="server">
			<asp:ListItem Value="240:-">240:-</asp:ListItem>
			<asp:ListItem Value="150:-">150:-</asp:ListItem>
		</asp:dropdownlist><asp:textbox id="TextBox1" style="Z-INDEX: 104; LEFT: 395px; POSITION: absolute; TOP: 256px" runat="server"></asp:textbox><asp:listbox id="ListBox1" style="Z-INDEX: 105; LEFT: 537px; POSITION: absolute; TOP: 123px" runat="server" Width="91px" Height="68px">
			<asp:ListItem Value="ett">ett</asp:ListItem>
			<asp:ListItem Value="tv&#229;">tv&#229;</asp:ListItem>
		</asp:listbox></form>
</body>
</HTML>

 

vb-koden:

Public Class WebForm1
   Inherits System.Web.UI.Page

   Protected WithEvents Label1 As System.Web.UI.WebControls.Label
   Protected WithEvents Button1 As System.Web.UI.WebControls.Button
   Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
   Protected WithEvents ListBox1 As System.Web.UI.WebControls.ListBox
   Protected WithEvents DropDownList1 As System.Web.UI.WebControls.DropDownList


#Region " Web Form Designer Generated Code "

   'This call is required by the Web Form Designer.
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

   End Sub

   Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
       'CODEGEN: This method call is required by the Web Form Designer
       'Do not modify it using the code editor.
       InitializeComponent()
   End Sub

#End Region

   Private str As String

   Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       'Put user code to initialize the page here
   End Sub

   Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
       TextBox1.Text = DropDownList1.SelectedItem.Value
       str = "DropDown"
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Label1.Text = str
   End Sub

   Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
       TextBox1.Text = ListBox1.SelectedIndex.ToString
       str = "ListBox"
   End Sub

   Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
       TextBox1.Text = "Ändra inte"
   End Sub
End Class

 

Såg när jag klistrat in koden att den inte exakt överrensstämmer med koden jag skrev i första inlägget. Detta för att jag testat lite, men det som står funkar inte som jag vill heller.

 

 

..me...

 

[inlägget ändrat 2003-08-01 10:11:49 av michael]

Link to comment
Share on other sites

Magnus Gladh

Ser att du använder VS

 

Har du stegat dig igenom koden och sett så att dina event körs?

 

Vad händer om du i Page_Load() skriver

 

Label1.Text = "Hello from Page_Load()";

 

- Magnus

-----------------------------------------------------

Ropen skalla, BBB (eller BOSTREAM) åt alla!!!

 

Link to comment
Share on other sites

Vad är det som händer när du trycker på knappen? Laddas sida ö.h.t. om? Får du ett felmeddelande?

 

_________

-- ante --

 

 

Link to comment
Share on other sites

När jag trycker på knappen laddas sidan om ja. Det som även sker är att eventet för DropDownList exekveras när sidan laddas om, dvs ändrar jag i DropDownListen så ska texten i TextBox1 ändras. Detta gör den först när formuläret skickats iväg och det sker enbart när jag trycker på knappen.

 

Inget felmeddelande.

 

..me...

 

Link to comment
Share on other sites

(Skrev lite om det i inlägget nedan)

 

Om jag lägger in koden du skrev så funkar den koden. Problemet är att eventen körs enbart (ALLA som triggats) när jag skickar iväg formuläret med knappen. Tycker det verkar konstigt och har inte alls för mig att man var tvungen att göra så.

 

Jag har både Framwork 1.1 och 1.0 installerat (tror jag åtminstone)

 

..me...

 

Link to comment
Share on other sites

Magnus Gladh

Okej så du vill att när du väljer ett text från dropDownlistan så skall sidan automatiskt laddas om och ditt eventköras, du skall alltås inte behöva trycka på någon knapp.

 

Då finns den en properties till din DropDownLista som heter något i still med, AutoPost eller någont liknande så du skall sätta till true. Typ något så här.

 

<asp:DropDownList AutoPost=True></asp:DropDownList>

 

Det är bara att leta sig igenom Intellisenslistan du får upp när du skriver din ASPKomponent på sidan så hittar du vad propertiesn heter.

 

- Magnus

-----------------------------------------------------

Ropen skalla, BBB (eller BOSTREAM) åt alla!!!

 

Link to comment
Share on other sites

Kanon!

Har för mig att detta skulle ske automatiskt, alltså att eventet körs när man ändarar, men så här kan det nog funka.

Enda problemet som jag såg var att när sidan laddas om så hoppar den längst upp, såklart, men det hade varit trevligare om den kom ihåg hur långt ner man scrollat...

Antar att det inte går att lösa.

 

Stort tack för hjälpen!

 

..me...

 

Link to comment
Share on other sites

Magnus Gladh

Hur menar du med "scrollat". Menar du scrollen i din dropDownlista så kan du få kvar det värdet med hjälp av viewstaten.

 

Om du menar att du har en DataGrid/Repeater som är längre än sidan och du i den väljer ett värde i din dropDownListan så är det svårare men det går. Såg något exempel på det, kommer dock inte ihåg. Men det enklas är nog att sätta så NameTags på varje rad i din datagrid <a name="ID1">ID1</a> och sedan lyckas få med detta i URL på något sätt :)

 

- Magnus

-----------------------------------------------------

Ropen skalla, BBB (eller BOSTREAM) åt alla!!!

 

Link to comment
Share on other sites

nja, menar egentligen att personen ska se sidan likadant när sidan laddats om. Om du läser detta inlägg och trycker reload så kommer du fortfarande när sidan laddats klart kunna läsa detta. Däremot om du trycker enter i adress-fältet så kommer du se sidan från toppen igen.

 

..me...

 

Link to comment
Share on other sites

Magnus Gladh

Det har jag inget svar på. Men maila Erik och fråga, det är säkert han som har fixat det, om det inte finns inbyggt i IE.

 

- Magnus

-----------------------------------------------------

Ropen skalla, BBB (eller BOSTREAM) åt alla!!!

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...