遇到个问题,希望大家帮忙给点提示或解决方案代码如下:
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”
参数显示是正确的,但是为什么还能有异常呢?
望大家帮忙看看我这个问题。

解决方案 »

  1.   

     ' <%=GetBig("' + a + '")%>'; 不可以这样用用ajax调用后台的代码吧
      

  2.   

    document.getElementById('txt2').value = ' <%=GetBig("' + a + '")%>'; 
    改为
    document.getElementById('txt2').value = ' <%=GetBig(' + a + ')%>'; 
    试试
      

  3.   

    这样写是调用不到服务器端方法的。调用后台方法,试试 ajax,或者用 javascript 提交到服务器端。
      

  4.   

    要是都按你想的这样做.那ajax就没什么用了:)
      

  5.   

    大家还是帮我解释下为什么不能按照我这样做吧。
    我就是不想用ajax。另外楼上的让我改成document.getElementById('txt2').value = '  <%=GetBig(' + a + ')%>'; 
    这样是不对的。我一开始也是这样写的。
      

  6.   

    你不想用AJAX,可以用webservice或json
    首先,服务器端和客户端流程你没弄清楚,页面是先走服务器端后在走客户端,你想想怎么可能走过服务器端后,从客户端在走服务器端呢?(当然有别的方法,如ajax等)取变量也是这样的
    如果你想用在客户端调用服务器端方法但不想用AJAX,还有别的办法,就是我提供给你的办法!
      

  7.   

    哎。绕了一个大圈,最后又回到xmlhttp了
      

  8.   

    用一个隐藏控件存TEXT的值,在后台先运行方法获取值,然后在前台绑定
      

  9.   


    运行起来先后顺序我是清楚的。我就是想img在客户端onclik后通过 javascript再取得后台方法返回值。
    关键是没搞明白既然参数的格式是正确的,那为什么还炮异常呢?
      

  10.   

    一定要用这个吗?我倒是想用就用,不用还有别的办法!.ashx文件也可以用啊
      

  11.   

    页面开始绑的时候这样用是行的.. 不过不能动态获取数据的  public string get()
        {
            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
      

  12.   

    我就不明白  请问高手我这个算是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;
            }
        }
    }
    这样调用还有一个好处就是不会刷新页面!