遇到个问题,希望大家帮忙给点提示或解决方案代码如下:
aspx<head>
<script type="text/javscript">
function a()
{
var a = document.getElementById('txt1').value;
document.getElementById('txt2').value = '<%=GetBig("' + a + '")%>';
}
</script>
</head>
CS
public string GetBig(string txt)
{
try
{
return otherFunction(double.Parse(txt)); //这个返回的是将金额转换大写的方法
}
catch(Exception ex)
{
return ex.Message + txt; //返回异常和参数值
}
}
问题来了。
我在页面的textbox中输入123。在一个img 的前台onclick调用javascript方法,
显示出来的是异常信息 “输入格式不正确。123”
参数显示是正确的,但是为什么还能有异常呢?
望大家帮忙看看我这个问题。
aspx<head>
<script type="text/javscript">
function a()
{
var a = document.getElementById('txt1').value;
document.getElementById('txt2').value = '<%=GetBig("' + a + '")%>';
}
</script>
</head>
CS
public string GetBig(string txt)
{
try
{
return otherFunction(double.Parse(txt)); //这个返回的是将金额转换大写的方法
}
catch(Exception ex)
{
return ex.Message + txt; //返回异常和参数值
}
}
问题来了。
我在页面的textbox中输入123。在一个img 的前台onclick调用javascript方法,
显示出来的是异常信息 “输入格式不正确。123”
参数显示是正确的,但是为什么还能有异常呢?
望大家帮忙看看我这个问题。
改为
document.getElementById('txt2').value = ' <%=GetBig(' + a + ')%>';
试试
我就是不想用ajax。另外楼上的让我改成document.getElementById('txt2').value = ' <%=GetBig(' + a + ')%>';
这样是不对的。我一开始也是这样写的。
首先,服务器端和客户端流程你没弄清楚,页面是先走服务器端后在走客户端,你想想怎么可能走过服务器端后,从客户端在走服务器端呢?(当然有别的方法,如ajax等)取变量也是这样的
如果你想用在客户端调用服务器端方法但不想用AJAX,还有别的办法,就是我提供给你的办法!
运行起来先后顺序我是清楚的。我就是想img在客户端onclik后通过 javascript再取得后台方法返回值。
关键是没搞明白既然参数的格式是正确的,那为什么还炮异常呢?
{
return tex1.Text.ToString();
}
<a href="last.aspx?orderid=<%=get() %>" >测试</a>
<asp:TextBox ID="tex1" runat ="server" Text ="123"></asp:TextBox> 打开页面的时候可以看到a 的链接last.aspx?orderid=123
但是你修改了text a 的链接是不会变的
故 !!lz 你要的效果只能是利用ajax
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="test._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Text1" type="text" />
<input id="Button2" type="button" value="button" onclick="GetLevelHtmlServer(document.getElementById('Text1').value)" />
</div>
</form>
</body>
<script type="text/javascript">
function GetLevelHtmlClient(text)
{
alert(text);
}
</script>
</html>后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;namespace test
{
//需继承ICallbackEventHandler此类
public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
{ protected void Page_Load(object sender, EventArgs e)
{
ClientScriptManager csm = this.ClientScript;
string GetLevelHtmlClient = csm.GetCallbackEventReference(this, "sqlString", "GetLevelHtmlClient", "");
string GetLevelHtmlServer = "function GetLevelHtmlServer (sqlString) { " + GetLevelHtmlClient + "; }";
csm.RegisterClientScriptBlock(this.GetType(), "Init", GetLevelHtmlServer, true);
}
//方法GetCallbackResult和RaiseCallbackEvent不可更改为其它名字
string returnValue = "";
public string GetCallbackResult()
{
return returnValue;
} public void RaiseCallbackEvent(string eventArgument)
{
string text = eventArgument; returnValue = GetBig(text);
} //自定方法
public string GetBig(string text)
{
return "我在后台走了一圈了:" + text;
}
}
}
这样调用还有一个好处就是不会刷新页面!