webForumDet fria alternativet

Lite hjälp med asp.net!

.NET

5 svar · 383 visningar · startad av tomas21

Medlem sedan feb. 2003130 inlägg
Frågan#1

Hej allihopa!

Jag har börjat titta lite på hur asp.net fungerar. Det första jag har kollat på är en artikel från aspsidan.nu där man visar hur man kan bygga en miniräknare. Koden för det ser ut så här med lite modifieringar från min sida:

<%@ Page Language="VB" %>

<Script runat="Server">

Sub Addition(obj as Object, E as EventArgs)
IblSumma.Text=cInt(tbTal1.Text)+cInt(tbTal2.Text)
End Sub

Sub Subtraktion(obj as Object, E As EventArgs)
IblSumma.Text=cInt(tbTal1.Text)-cInt(tbTal2.Text)
End Sub

Sub Multiplikation(obj as Object, E As EventArgs)
IblSumma.Text=cInt(tbTal1.Text)*cInt(tbTal2.Text)
End Sub

Sub Division(obj as Object, E As EventArgs)
IblSumma.Text=cInt(tbTal1.Text)/cInt(tbTal2.Text)
End Sub

</Script>

<form runat=server>

Mata in första talet: &nbsp; <asp:textbox id="tbTal1" runat=server /><p>

Mata in andra talet: &nbsp; <asp:textbox id="tbTal2" runat=server /><p>

<asp:button id="btAddition" Text=" + " Onclick="Addition" runat=server />
<asp:button id="btSubtraktion" Text=" - " Onclick="Subtraktion" runat=server />
<asp:button id="btMultiplikation" Text=" * " Onclick="Multiplikation" runat=server />
<asp:button id="btDivision" Text=" / " Onclick="Division" runat=server />

</form>
<br><br>
<% If tbTal1="" And tbTal2=""  Then
   Response.Write "Du har inte gjort någon beräkning än"
   Else
%>
<b>Resultatet av din beräkning blev:</b><br>
<asp:label id=IblSumma runat="server" />
<%End If%>

Nu är det så att if satsen som finns längst ner har jag själv lagt dit. Jag vill att skriptet ska kolla ifall tex fälten för inmatning är tomma då ska den säga att "Du har inte gjort någon beräkning än". Jag har även provat med If IblSumma="" men jag får endast felmedelanden. Jag antar att man inte kan använda if satser på asp.net på samma sätt som på asp.

Felmedelandet som jag får är detta:

_____________________________________________________
Server Error in '/' Application.
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: BC31080: Operator '=' is not defined for types 'System.Web.UI.WebControls.TextBox' and 'String'. Use 'Is' operator to compare two reference types.

Source Error:

Line 34: </form>
Line 35: <br><br>
Line 36: <% If tbTal1="" And tbTal2="" Then
Line 37: Response.Write "Du har inte gjort någon beräkning än"
Line 38: Else

Source File: raknare.aspx Line: 36
_____________________________________________________

Där line 36 är : If tbTal1="" And tbTal2="" Then
Alltså just if satsen.

Skulle vara mycket glad om någon kunde hjälpa mig i detta.

Mvh/ Tomas

Medlem sedan apr. 20003 174 inlägg
#2

En variant:

[red]<%@ Page Language="VB" %>

<Script runat="Server">

	Sub Addition(obj as Object, E as EventArgs)

		If tbTal1.Text.length > 0 AND tbTal2.Text.length > 0 Then
			IblSumma.Text=cInt(tbTal1.Text)+cInt(tbTal2.Text)
		Else
			IblSumma.Text="Du har inte gjort någon beräkning än"
		End If

	End Sub

	Sub Subtraktion(obj as Object, E As EventArgs)

		If tbTal1.Text.length > 0 AND tbTal2.Text.length > 0 Then
			IblSumma.Text=cInt(tbTal1.Text)-cInt(tbTal2.Text)
		Else
			IblSumma.Text="Du har inte gjort någon beräkning än"
		End If

	End Sub

	Sub Multiplikation(obj as Object, E As EventArgs)

		If tbTal1.Text.length > 0 AND tbTal2.Text.length > 0 Then
			IblSumma.Text=cInt(tbTal1.Text)*cInt(tbTal2.Text)
		Else
			IblSumma.Text="Du har inte gjort någon beräkning än"
		End If

	End Sub

	Sub Division(obj as Object, E As EventArgs)

		If tbTal1.Text.length > 0 AND tbTal2.Text.length > 0 Then
			IblSumma.Text=cInt(tbTal1.Text)/cInt(tbTal2.Text)
		Else
			IblSumma.Text="Du har inte gjort någon beräkning än"
		End If

	End Sub

</Script>

<form runat=server>

	Mata in första talet:   <asp:textbox id="tbTal1" runat=server /><p>
	Mata in andra talet:   <asp:textbox id="tbTal2" runat=server /><p>
	<asp:button id="btAddition" Text=" + " Onclick="Addition" runat=server />
	<asp:button id="btSubtraktion" Text=" - " Onclick="Subtraktion" runat=server />
	<asp:button id="btMultiplikation" Text=" * " Onclick="Multiplikation" runat=server />
	<asp:button id="btDivision" Text=" / " Onclick="Division" runat=server />

</form>

<br><br>

<b>Resultatet av din beräkning blev:</b><br>
<asp:label id=IblSumma runat="server" />[/red]
Medlem sedan maj 20012 812 inlägg
#3

Jag antar att man inte kan använda if satser på asp.net på samma sätt som på asp.

Jodå. Och om du läser ditt felmeddelande så står det ganska tydligt vad du gör för fel.

Operator '=' is not defined for types 'System.Web.UI.WebControls.TextBox' and 'String'. Use 'Is' operator to compare two reference types.

Felmeddelande säger att du försöker jämföra en Control som är av typen TextBox med en sträng. Och det får du inte, eftersom det inte finns någon anledning att jämföra en TextBox med en sträng. Däremot så vill man jämföra TEXTEN i TextBoxen med en sträng.

Och precis som Palle skriver blir din kod istället.

<% If tbTal1.Text = "" And tbTal2.Text = "" Then

- M

Medlem sedan feb. 2003130 inlägg
#4

Tack för era svar!
De var mycket till hjälp. För nu har jag förstått att man ska kolla om talets storlek är större än 0 eller ej inne i sub funktionen! :)

Medlem sedan apr. 20003 174 inlägg
#5

Bara för skojj skull knåpade jag ihop en till variant, som ter sig lite annorlundare: ;)

[red]<%@ Page Language="VB" ClientTarget="downlevel" %>

<script runat="Server">

	Sub Addition(obj as Object, E as EventArgs)
		If Page.IsValid Then IblSumma.Text=cInt(tbTal1.Text)+cInt(tbTal2.Text)
	End Sub

	Sub Subtraktion(obj as Object, E As EventArgs)
		If Page.IsValid Then IblSumma.Text=cInt(tbTal1.Text)-cInt(tbTal2.Text)
	End Sub

	Sub Multiplikation(obj as Object, E As EventArgs)
		If Page.IsValid Then IblSumma.Text=cInt(tbTal1.Text)*cInt(tbTal2.Text)
	End Sub

	Sub Division(obj as Object, E As EventArgs)
		If Page.IsValid Then IblSumma.Text=cInt(tbTal1.Text)/cInt(tbTal2.Text)
	End Sub

</script>

<form runat="server">

	Mata in första talet: <asp:textbox id="tbTal1" runat="server" /> 
	<asp:RequiredFieldValidator runat="server" id="valiTal1" ControlToValidate="tbTal1" ErrorMessage="Du måste ange ett tal" display="Dynamic" /><p>

	Mata in andra talet: <asp:textbox id="tbTal2" runat="server" /> 
	<asp:RequiredFieldValidator runat="server" id="valiTal2" ControlToValidate="tbTal2" ErrorMessage="Du måste ange ett tal" display="Dynamic" /><p>

	<asp:button id="btAddition" Text=" + " Onclick="Addition" runat="server" />
	<asp:button id="btSubtraktion" Text=" - " Onclick="Subtraktion" runat="server" />
	<asp:button id="btMultiplikation" Text=" * " Onclick="Multiplikation" runat="server" />
	<asp:button id="btDivision" Text=" / " Onclick="Division" runat="server" />

	<br><br>

	<b>Resultatet av din beräkning blev:</b> <asp:label id="IblSumma" runat="server" />

</form>[/red]
Medlem sedan sep. 20026 425 inlägg
#6

Palle har på tok för mycket "fritid". ;) :bire

250 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)