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: <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>
<% 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
[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]
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.
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! :)
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]