Ajax 1.0 中使用web控件调用后台方法的用法.

今天在做页面文本框审核的时候发现个Ajax 1.0 中使用web控件调用后台方法的一个不爽的地方.
把该调用方法发上来供大家参考.
首先我们创建一个MasterPage.master文件.


在页面上放一个ScriptManager控件

页面代码如下:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
</asp:ScriptManager>

然后创建一个该母模板页的子页面.


我们创建一个自定义控件


在自定义控件的HTML代码下增加如下代码:
<script type="text/javascript">
   
function onblurfun()
    {
        $get(
"span12").innerHTML = "处理中....";
        PageMethods.IsTrue(onSucceedOnBlur);
    }
    
    
function onSucceedOnBlur(result)
    {
        
var sss = result;
        
if(sss)
        {
            $get('input11').value 
= "123345";
            $get(
"span12").innerHTML = "处理结束....";
        }
    }
</script>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    
<ContentTemplate>
        
<input id="input11" type="text" value="点击回去数据" onblur="onblurfun()" />
    
</ContentTemplate>
</asp:UpdatePanel>
<span id="span12"></span>
ok我们控件做好了.
将该控件放入刚才的子页面中.在子页面的后台代码处增加如下代码:

using System.Web.Services;
using System.Threading;
//要添加上面两个引用

[WebMethod]
public static bool IsTrue()
{
    Thread.Sleep(
3000);
    
return true;
}

这样我们运行页面就可以进行从web控件异步调用后台页面的方法了.
唯一不爽的就是异步调用后台页面方法的时候,要把方法写到使用该web控件的页面中,而不能在web控件的后台代码写调用方法.要不会报错.

大虾们可以解释下吗?

posted @ 2007-08-10 12:07 H2O、winnerzone 阅读(2307) 评论(8)  编辑 收藏

  回复  引用  查看    
#1楼 2007-08-10 12:42 | 无常      
$get('input11').value = "123345";

--------
放到控件中后就不是'input11' 这个ID了
  回复  引用    
#2楼 2007-08-10 13:07 | ayu [未注册用户]
@无常
不懂..放在控件的页面仲id就不是input11了?
那id是什么?
  回复  引用  查看    
#3楼 [楼主]2007-08-10 13:08 | winnerzone      
@无常
使用$get('input11')是可以取出来的.
  回复  引用    
#4楼 2007-08-10 13:13 | 啊啊 [未注册用户]
为什么不用服务器端控件
  回复  引用  查看    
#5楼 2007-08-10 13:18 | aspnetx      
@无常
不是服务器端的控件应该不会变得吧
  回复  引用  查看    
#6楼 2007-08-10 15:12 | Jeffrey Zhao      
这是特性,只能加在Page中。
  回复  引用    
#7楼 2007-08-10 15:57 | hc358 [未注册用户]
不错 不错 谢谢分享 !
  回复  引用    
#8楼 2007-08-11 23:38 | huankfy [未注册用户]
方法前放置[WebMethod],可以允许它处调用,而web控件放置的主页面cs里面方法/事件,除了服务器端控件可触发外,javascript好像只能调用public修饰的
........
一己之见,可能有错,望指正

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印