首页 新闻 会员 周边

ScriptManager的封装问题

0
悬赏园豆:20 [已解决问题] 解决于 2010-01-26 23:22

我在一个类库中要把ScriptManger封装,方法是这样写的

        public void ShowBox(string msg)
        {
            var myPage = HttpContext.Current.CurrentHandler as Page;
            if(myPage!=null)
            {
            var sm = ScriptManager.GetCurrent(myPage);
            if (sm != null)
            {

            }
            else
            {
                throw new Exception("当前页面" + myPage.ClientID + "不存在ScriptManger");
                //MessageBox.Show(this, msg);
            }
            }

这样的问题就是ScriptManger没有注册脚本的方法了,一个都没有了,只有注册ExtendControl、PostBackControl等这些register的方法。求解答!

我又试了下换做ClientScript,但是我的控件全在UpdatePanel里面,所以也不行。

问题补充: 我自己找到答案了,其实很简单。应该在这里直接使用ScriptManager的静态方法,而不是实例。当你调用 RegisterClientScriptBlock 的时候,第一个参数 control 给对就够了,所以没有必要去帮它找 sm 出来。如果需要在控件中加入脚本文件可以用实例,静态方法直接用就行了。
高凡凡高的主页 高凡凡高 | 初学一级 | 园豆:95
提问于:2010-01-26 11:34
< >
分享
最佳答案
0

学习

收获园豆:10
Jared.Nie | 小虾三级 |园豆:1940 | 2010-01-26 15:06
其他回答(1)
0

学习

收获园豆:10
Annie | 园豆:396 (菜鸟二级) | 2010-01-26 13:08
不错
支持(0) 反对(0) 张少 | 园豆:162 (初学一级) | 2010-01-27 17:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册