2.0有RegisterClientScriptResource,1.1没有.难道只能js ,css 和dll一块发布,只发布控件的dll不行吗?

解决方案 »

  1.   

    两个办法。
    1 做为嵌入资源编译。
    2 放到.resx文件,放到[CDATA]里面
      

  2.   

    我想用做为嵌入资源编译,请问如何写入到客户端 .比如我的myDataGrid控件 ,调用了a.htc,b.js,已把二者嵌入,如何在 protected override void OnPreRender(EventArgs e)中把js给客户端
      

  3.   

    用getmanifestresourcestream();读出文本,然后用page.registerscriptblock注册。毕竟js也是文本文件。按文本文件来对待就行了。
      

  4.   

    直接将 js 写到 UserControl 里面,这样方便些
      

  5.   


    两个办法。
    1 做为嵌入资源编译。
    2 放到.resx文件,放到[CDATA]里面--------同意这个,不过要在代码页编写资源读取语句取出脚本内容,将其通过RegisterScriptBlock或者RegisterStartupScript注册到页面上。
      

  6.   

    js可以这样做  ,那css  和 htc 如何从资源中调用 ?
    而且我的css 中要用到htc  .比如css中有个样式是 .abc { BEHAVIOR: url(abc.htc) }
      

  7.   

    那你需要写个页面专门处理css和htc了,比如css.aspx,其后台使用response.write("从资源读取出来的样式内容");
    同理,htc.aspx使用:<link href="css.aspx" rel="stylesheet" type="text/css" />
    同理.abc { BEHAVIOR: url(htc.aspx) }
      

  8.   

    写个页面?那你这样和我直接把link href="a.css" rel="stylesheet" type="text/css" />
    写到页面有什么区别呢.别人使用控件时还是有附加的步骤要做,把<link href="css.aspx" rel="stylesheet" type="text/css" />这句加入.不能简单的拖入控件页面就好.
      

  9.   

    这样的话只能render到页面上了,你如果是编写自定义控件就只有把css定义内容输出到页面,同样的对于behavior也不能使用url的方式,需要类似使用下面的代码,并将其放在页面上:
    <script for="btn" event="onclick">如果一定要用url这种方式,也可以使用上面说的方法,但是要使用httpHandler,比如url(abc.truly),而在httpHandler中对.truly后缀文件进行处理,解析为htc内容。css同理,同时另外一种思路是即便是在自定义控件一样可以通过render给页面输出link href这种语句,可以在页面任何位置。但是无论如何,htc是面临淘汰的一种技术,因为它只在ie中其作用,之前我写过很多htc,但是目前来看,浏览器越发的混乱,这种只有MS才支持的非标准的东西已经没有价值了。
    更好的方式是使用js来动态控制行为,比如btn.attachEvent("onclick",func);(ie的写法,firefox等其它浏览器是addEventListener)
      

  10.   

    谢谢Truly,我准备放弃只发布dll的想法了。好在我们的项目只允许客户使用ie6,呵呵。不过有时间还是准备都改写成javascript。