Ciao, premeto che tutto il codice che sto usando l' ho copiato dal libro.
Dunque il controllo utente dovrebbe fare una calcolatrice e questo e il codice che mi da errore
codice:
<script Language="VB" runat="server">
private answer as double
Sub btOperator_Click(obj as object, e as eventargs)
if (hiddenvalue.value <> "" and hiddenvalue.value <> "0")
tbNumber.Text = Operate(obj.Text, hiddenvalue.value, tbNumber.Text)
hiddenvalue.value = ""
hiddenoperator.value = ""
else
'salva il vechio numero come campo
'nascosto e ripulisci il text box
hiddenvalue.value = tbNumber.Text
hiddenoperator.value = obj.Text
tbNumber.Text = "0"
end if
End Sub
Sub btSpecOperator_Click(obj as object, e as eventargs)
tbNumber.Text = Operate(obj.Text, hiddenvalue.value, tbNumber.Text)
hiddenvalue.value = ""
hiddenoperator.value = ""
End Sub
Sub btNumber_click(obj as object, e as eventargs)
response.write(answer.ToString)
if tbNumber.Text <> "0" then
tbNumber.Text = tbNumber.Text & obj.Text
else
tbNumber.Text = obj.Text
answer = nothing
end if
End Sub
Sub btClear_Click(obj as object, e as eventargs)
tbNumber.Text = "0"
hiddenoperator.value = ""
hiddenvalue.value = ""
End Sub
Sub btBS_Click(obj as object, e as eventargs)
if tbNumber.Text <> "0" then
tbNumber.Text = Left(tbNumber.Text, len(tbNumber.Text)-1)
end if
End Sub
Sub btMemory_Click(obj as object, e as eventargs)
select case obj.Text
case "MC"
Session("memory") = ""
Indicator.Text = ""
case "MS"
Session("memory") = tbNumber.Text
Indicator.Text = "M"
case "MR"
tbNumber.text = Session("memory")
case "M+"
end select
End Sub
Sub btEqual_Click(obj as object, e as eventargs)
if hiddenvalue.value <> "" then
if hiddenoperator.value <> "" then
'opera i numeri
tbNumber.Text = Operate(hiddenoperator.value, hiddenvalue.value, tbNumber.Text)
hiddenvalue.value = ""
hiddenoperator.value = ""
answer = tbNumber.Text
else
'nessuna operazione
end if
else
'nessuna operazione
end if
End Sub
private function Operate(operator as string, number1 as string, optional number2 as string = "1") as double
select case operator
case "+"
Operate = CDbl(number1) + CDbl(number2)
case "-"
Operate = CDbl(number1) - CDbl(number2)
case "*"
Operate = CDbl(number1) * CDbl(number2)
case "/"
Operate = CDbl(number1) / CDbl(number2)
case "sqrt"
Operate = CDbl(Math.sqrt(number2))
case "1/x"
Operate = CDbl(1 / CDbl(number2))
case "+/-"
Operate = CDbl(-CDbl(number2))
end select
end function
</script>
<asp:Panel ID="Frame" runat="server">
<table width="250">
<tr>
<td width="100%" colspan="7">
<asp:TextBox ID="tbNumber" runat="server"
text="0"
enabled="false"
width="100%" />
</td>
</tr>
<tr>
<td align="right" width="100%" colspan="7">
<asp:Label ID="Indicator" Text="" runat="server" />
<asp:Button ID="btBS" Text="Backspace"
OnClick="btBS_Click" runat="server" Width="75" />
<asp:Button ID="btClear" Text="C"
OnClick="btClear_Click" runat="server" Width="35" />
</td>
</tr>
<tr>
<td width="32" valign="top">
<asp:Button ID="btMC" Text="MC"
OnClick="btMemory_Click" runat="server"
width="35" />
</td>
<td width="58"></td>
<td width="32">
<asp:Button ID="bt7" Text="7"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="bt8" Text="8"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="bt9" Text="9"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btDivide" Text="/"
OnClick="btOperator_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btSqrt" Text="sqrt"
OnClick="btSpecOperator_Click" runat="server"
width="35" />
</p>
</td>
</tr>
<tr>
<td width="32" valign="top">
<asp:Button ID="btMR" Text="MR"
OnClick="btMemory_Click" runat="server"
width="35" />
</td>
<td width="8"></td>
<td width="32">
<asp:Button ID="bt4" Text="4"
OnClick="btNumber_Click"
runat="server" width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="bt5" Text="5"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="bt6" Text="6"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btMultiply" Text="*"
OnClick="btOperator_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btPercent" Text="%"
OnClick="btOperator_Click" runat="server"
width="35" />
</p>
</td>
</tr>
<tr>
<td width="32" valign="top">
<asp:Button ID="btMS" Text="MS"
OnClick="btMemory_Click" runat="server"
width="35" />
</p>
</td>
<td width="8"></td>
<td width="32">
<asp:Button ID="bt1" Text="1"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="bt2" Text="2"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="bt3" Text="3"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btSubtract" Text="-"
OnClick="btOperator_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btOneOver" Text="1/x"
OnClick="btSpecOperator_Click" runat="server"
width="35" />
</p>
</td>
</tr>
<tr>
<td width="32" valign="top">
<asp:Button ID="btMP" Text="M+"
OnClick="btMemory_Click" runat="server"
width="35" />
</td>
<td width="8"></td>
<td width="32">
<asp:Button ID="bt0" Text="0"
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btNegate" Text="+/-"
OnClick="btSpecOperator_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btDot" Text="."
OnClick="btNumber_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btAdd" Text="+"
OnClick="btOperator_Click" runat="server"
width="35" />
</p>
</td>
<td width="32">
<asp:Button ID="btEqual" Text="="
OnClick="btEqual_Click" runat="server"
width="35" />
</p>
</td>
</tr>
</table>
</asp:Panel>
<input type="hidden" id="hiddenvalue" value=""
runat="server" >
<input type="hidden" id="hiddenoperator" value=""
runat="server" >
ed il file l' ho chiamato Calculator.ascx
mentre il codice della pagina aspx che richiama il controllo è
codice:
<%@ Page Language="VB" %>
<%@ Register TagPrefix="TYASPNET" TagName="Calculator" Src="Calculator.ascx" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title>CALCOLATRICE</title>
</head>
<body>
<form runat="server">
<TYASPNET:Calculator id="Calc1" runat="server" />
</form>
</body>
</html>
dove sta l' errore?