各位大哥,我现在要做一个类似于帝国的新闻发布系统,要实现动态创建JS,在需要显示新闻的页面只要调用那段JS引用就可以了,这个该怎么做啊,我一点思路都没有,请大家帮帮忙。(我只有52分了,请大家原谅)

解决方案 »

  1.   

    VSTS2008里面可以在服务器端动态加入js代码段的。
      

  2.   

    动态创建JS文件是应该可以解决的,关键是我这样的需求,JS文件该怎么写
      

  3.   

    可以这样:
    <script type="text/javascript" src="abc.aspx"></script>只要你的这个abc.aspx输出的是js内容就可以了
    然后你在这个abc.aspx里读取数据库,并生成document.write输出新闻的语句
      

  4.   

    其实就是通过.cs文件里面用C#生成文件,至于这个文件名和文件内容都可以定的,网上很多你可以找找看
      

  5.   

    回复:10楼的朋友我用了你的思路来实现,但是代码
    <script type="text/javascript" src="abc.aspx"> </script> 报脚本错误
    如果换成是JS文件的话就没有错误,上面的这个语句还有其他的写法吗
      

  6.   

    <script language="javascript" src="abc.aspx?classid=2"></script>你后台的这个ASPX页面要全部清空,不得有任何的其它HTML代码,否则就会出现错误。。假设调用代码为上代码,即调用第二类的新闻,当然参数可以多点,如加入条数等信息。。然后你要在ABC.aspx如下页面把页面中的HTML清空。。只留下。。<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>var list;list=<%=Getlist(5) %>;document.write(list);然后在其后台代码里面写入如下代码:protected void Page_Load(object sender, EventArgs e)
        {
            int id = int.Parse(Request.QueryString["id"]);
            if (!Page.IsPostBack)
            {
                Getlist(id);
            }
        }    public string Getlist(int id)
        {
            string content = string.Empty;        content += "<ul>";
            for (int i = 0; i < id; i++)
            {
                content += "<li>";
                content += "第一条新闻";
                content += "</li>";
            }
            content += "</ul>";        return content;    }
    这里我没有操作数据库了,其实大致是如此,只不过把循环部分换成是根据传来的参数读取数据罢了。相信你应该是很容易看懂的
    恩。就是这样了。有什么问题及时回复。。
      

  7.   

        几个要点:1:JS文件里面全是JS代码。如果要输出HTML代码,用document.write输出。。               2.怎么样得到新闻的HTML代码(通过后台方法,调用数据库。)
                   
                   3.定义一个公有方法,返回新闻列表的HTML代码。               4.在前台页面去掉其它的HTML代码,调用这个方法,然后把得到的字符串用JS的方法输出。
                   
                   5.其它页面就调用这个JS就可以了,JS src中的参数是可以传达到后台的。。
     楼主送分吧。哈哈。。50分有点少。。一人分一点喽祝元旦快乐!!
      

  8.   

    在后台用拼接js字符串 再用ClientScript.RegisterScript.
      

  9.   

    谢谢大家的热心回复。祝大家元旦快乐。回复:yanzhiyong
    你好,谢谢你的好思路,我用了你的代码,在我这里出现了一些小问题,不知道如何解决;
    页面可以浏览,但是浏览的结果是这样的:
    var list; list=
    第一条新闻
    第一条新闻
    第一条新闻
    第一条新闻
    第一条新闻
    ; document.write(list);
      

  10.   

    我还想再问一下,在这个页面能放GRIDVIEW控件吗
      

  11.   

    我把abc.aspx页面下除了第一行代码外的所有HTML都清空了
    这行代码还是报错<script language="javascript" src="abc.aspx?classid=2"> </script> 
    如果是链接的JS文件则不报错
      

  12.   

      代码 我是经过调试的,应该不会有错的。不是要你浏览这个页面。 而是在abc.aspx外的另外一个页面中插入这行代码   思路就是这样的了,具体的就是JS的输出问题了。 <script language="javascript" src="abc.aspx?classid=2"> </script> 
      

  13.   


    报错的原因,估计是你的2个文件编码不一致
    比如abc.aspx编码是utf-8,而引用文件是gb2312,改成一致的编码试试。
    另外,这个abc.aspx不能用gridview,因为它生成的是html,不是js
    你可以用Repeater代替至于哪些控件可以用,哪些控件不能用,你可以自己测试,比如放入控件后,直接访问abc.aspx页面,看看生成的html是否js格式,不是,就不行。
      

  14.   

    你好,我是这样做的,建了2个页面,一个是default.aspx,另一个是abc.aspx
    abc.aspx是按照你的代码,把HTML端清空,只留你写出来的代码,CS端也是按照你的写法的
    default.aspx的HTML端加入<script language="javascript" src="abc.aspx?id=2"> </script>但是在浏览default.aspx页面的时候还是报脚本错误,不知道是我哪里做错了
    还要麻烦你,不好意思了
      

  15.   

    终于可以了,谢谢大家的热心回复
    我在ABC.ASPX页面里是这样做的
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="abc.aspx.cs" Inherits="abc"  %> var list;list='<%=Getlist(5) %>';document.write(list);
    加了单引号就可以了祝大家元旦快乐