首页 新闻 会员 周边

C#后台代码调用前台js控件

0
悬赏园豆:50 [已解决问题] 解决于 2016-03-01 10:13

前台代码

<div class="panel-heading">
        <asp:ImageButton ID="imgCollect" runat="server" Height="30" Width="30" OnClick="imgCollect_Click" />                                                           
</div>

后台正常调用的代码

protected void imgCollect_Click(object sender, ImageClickEventArgs e)
        {
            string message = "";
            string toWrite = "<script>alert('" + message + "')</script>";
            Response.Write(toWrite);
        }

现在我想调用前台的layer.js控件(该控件已经在head里面引入)

protected void imgCollect_Click(object sender, ImageClickEventArgs e)
        {
            string message = "";
            string toWrite = "<script>layer.alert('" + message + "')</script>";
            Response.Write(toWrite);
        }

结果页面什么也没显示,打开调试模式,出现以下信息

Uncaught ReferenceError: layer is not defined

军长_cnblogs的主页 军长_cnblogs | 初学一级 | 园豆:18
提问于:2016-02-29 18:36
< >
分享
最佳答案
1

是先输出  <script>layer.alert... , 再输出页面 <html> .... 的

收获园豆:40
Yu | 专家六级 |园豆:12980 | 2016-03-01 09:40

哦,是这个原因吗。那要如何才能达成我的需求(后台调用前台控件)?

军长_cnblogs | 园豆:18 (初学一级) | 2016-03-01 09:43

@军长_cnblogs: Page.RegisterClientScriptBlock("a", toWrite);

Yu | 园豆:12980 (专家六级) | 2016-03-01 09:55

@Yu: 这段代码要写在哪里,另外,a代表什么

军长_cnblogs | 园豆:18 (初学一级) | 2016-03-01 10:07

@军长_cnblogs: 替换 Response.Write , a 任意起名,不重复就可以

Yu | 园豆:12980 (专家六级) | 2016-03-01 10:08

@Yu: 问题解决了,谢谢。

军长_cnblogs | 园豆:18 (初学一级) | 2016-03-01 10:13
其他回答(1)
0

没有引入jquery

收获园豆:10
Jeffcky | 园豆:2789 (老鸟四级) | 2016-02-29 20:42

不是的,前台js调用这个控件都没有问题。

支持(0) 反对(0) 军长_cnblogs | 园豆:18 (初学一级) | 2016-03-01 09:32

@军长_cnblogs:

还有两种可能性:

(1)就是你比如说模板页面引入了jquery和layer,后又再次引入了layer导致jquery被覆盖也会出现这种问题

(2)layer和其他脚本引入导致冲突,也是有可能导致这种问题出现的

支持(0) 反对(0) Jeffcky | 园豆:2789 (老鸟四级) | 2016-03-01 09:36

@Recluse_Xpy: 

针对你的回复:

(1)没有引入模板页面

(2)在页面写js可以正常调用这个layer控件,所以应该不是引入冲突。

支持(0) 反对(0) 军长_cnblogs | 园豆:18 (初学一级) | 2016-03-01 09:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册