首页 新闻 搜索 专区 学院

ajaxPro.2的问题,我获取不到服务器控件的值

0
悬赏园豆:20 [已解决问题] 解决于 2011-02-25 12:14

前台
<head runat="server">
    <title>无标题页</title>
    <script src="JScript1.js" type="text/javascript"></script>
</head>
<body>
    <form id="form1" runat="server">
       
    <div>   
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
    <input id="Button2" type="button" value="button"  onclick="abc()"/>
    </div>
       
    </form>
</body>


后台

 protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
        }

        [AjaxPro.AjaxMethod]
        public int abc()
        {
            int i=0;
            string a = TextBox1.Text;
            if ( a== "aa")
            {
                i = 1;
            }
            else
            {
                i = 2;
            }
           
            return i;

        }

js文件

function abc()
{
   var i=WebApplication1._Default.abc().value;
 
   if(i==1)
   {
    alert("aa");
   }
   else if(i==2)
   {
     alert("other");
   }
}

设置断点,运行到string a = TextBox1.Text;就不执行了,也不报错或者异常
应该怎么取啊,请大侠告知

ghelement的主页 ghelement | 初学一级 | 园豆:20
提问于:2011-02-24 16:23
< >
分享
最佳答案
0

在[AjaxPro.AjaxMethod]方法里面是获取不到服务器控件的值。

AjaxPro.AjaxMethod 貌似对HTTP请求进行了拦截,并不会按asp.net页面生命周期顺序执行。可以在pageload里加一个断点试一下,如果在执行AjaxPro.AjaxMethod方法前没有命中断点则说明上面说的是正确的。

解决方法可以给 abc()加一个参数,在html调用abc(document.getElementByID('TextBox1').value)



收获园豆:10
snryang | 初学一级 |园豆:24 | 2011-02-24 17:13
谢谢,很详细,1楼和你答案都很好,分就对半吧 因为详细,给你最佳
ghelement | 园豆:20 (初学一级) | 2011-02-25 12:14
其他回答(2)
0

通过js方法参数进行传递。

收获园豆:10
dudu | 园豆:37154 (高人七级) | 2011-02-24 17:02
谢谢,一针见血
支持(0) 反对(0) ghelement | 园豆:20 (初学一级) | 2011-02-25 12:13
2楼也不错,分就对半吧
支持(0) 反对(0) ghelement | 园豆:20 (初学一级) | 2011-02-25 12:14
0

如1楼

建议你了解一下ajax的原理和aspx页面的生命周期

写代码的小2B | 园豆:4355 (老鸟四级) | 2011-02-24 17:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册