flash新闻轮转经常见到,为了维护的便捷性,我是如何解决该问题的呢?

1、新闻页面我是利用javascript和aspx结合的如:假如页面中需要用到一个get_title变量,则它是如何从aspx中传递过来的呢?看看下:

<title>
        <%=get_title()%>
     </title>

在打开新闻页面中写个函数,要利用DataSet哦,accessGetDataSet则原来就写好的函数

protected String get_title()  //新闻的标题
    {
        OleDbConnection Con = dbcen.Acc_Con();
        Con.Open();
        string title = dbcen.accessGetDataSet("select * from db_news where new_no = " + int.Parse(Request.QueryString["new_no"].ToString()) + "").Tables[0].Rows[0]["new_title"].ToString();  //如何获得标题可以在javascript中调用
        Conn.Close();
        return title;
    }

刚才是热身,现在正式开始做新闻系统中的flash展示图片来了

1:必须的文件pixviewer.swf就可以了,

后来的代码

<script type="text/javascript">
<!--
 var interval_time=2;
 var focus_width=160;
 var focus_height=120;
 var text_height=0;
 var text_align="center";
 var swf_height = focus_height+text_height;
 var swfpath="/pic/pixviewer.swf";
  //var pics= 'testimg/1.jpg|testimg/2.jpg'; 

//var links='www.baidu.com|www.163.com';
 var pics='<%=get_pic()%>';
 var links='<%=get_address()%>';//注意一定要用单引号,否则不行

 var texts="||";
 
 document.write('<object class />');
 document.write('</object>');
//-->
</script>

以上主要关键就是“//”两行被颜色行替换了,因为这里需要的是图片地址,不是流。所以必须把图片用流输出到页面,然后把显示图片的url给它。

var pics='<%=get_pic()%>';
 var links='<%=get_address()%>'; 如何的来的呢?

 当然在首页就定义静态变量

public static String[] news_pic = new string[20];
    public static String[] news_link = new string[20];

然后在页面load事件中

con.open();

int news_link_count = dbcen.accessGetDataSet("select * from db_news where NewsType='链接新闻'").Tables[0].Rows.Count;//判断符合的记录数目
                string sql_news_pic;
                if (news_link_count >=5)
                {
                    sql_news_pic = "select top 6 * from db_news where NewsType='链接新闻'order by new_no desc";
                }
                else
                {
                    sql_news_pic = "select top " + news_link_count.ToString() + " * from db_news where NewsType='链接新闻'order by news_no desc";
                 }
                for (int i = 1; i <= news_link_count ;i++ )
                {
                    news_pic[i] = dbcen.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["news_pic"].ToString().Replace("\\", "/");//替换字符串以正确显示
                    news_link[i] = dbcen.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["newspic_link"].ToString() + dbcen.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["news_no"].ToString();//附值
                 }

 con.close();

最后,还需要写两个函数

 protected String get_address()
    {
        string str_address = news_link[1] + "|" + news_link[2] + "|" + news_link[3] + "|" + news_link[4] + "|" + news_link[5];//多个字段相加
        return (str_address);
     }
    protected string get_pic()
    {
        string str_pic = news_pic[1] + "|" + news_pic[2] + "|" + news_pic[3] + "|" + news_pic[4] +"|" + news_pic[5]; //多个字段相加
        return(str_pic);
    }

以允许javascript调用。

这样思路解决了,也就搞算好了。该过程中还用到一些小技巧如替换“\”换成“/”才可以正确显示图片,news_link[i] = dbcen.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["newspic_link"].ToString() + dbcen.accessGetDataSet(sql_news_pic).Tables[0].Rows[i-1]["news_no"].ToString();

因为写入库的时候只能先写入链接地址的前端,后读取的时候再读出new_no再结合为一个实际的链接.

经过测试,效果和速度比较理想,好好思考下,以后就有进步.

如果想:页面上所有的链接都在新窗口打开则在代码中加入

<head>
    <base target="_blank">
    </head>

    注意事项:< base >必须写在< head >标记里,但是这有时候又限制了一些功能的,如果在aspx中,你用gridview控件,你有一列是做超级连接的,则在代码中最好是这样

<asp:HyperLinkField   DataNavigateUrlFields="list.aspx?id={0}"     Target="_blank"   DataNavigateUrlFormatString="id"   DataTextField="name"/>

Target="_blank" 加入就ok啦.可以在新的窗口打开超连接了。

如果还不明白,请看本页另一篇,详细介绍flash轮换图片展示的步骤了.

相关文章:

  • 2022-12-23
  • 2021-12-03
  • 2021-10-25
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2021-09-30
猜你喜欢
  • 2022-12-23
  • 2021-07-03
  • 2022-12-23
  • 2021-12-12
  • 2022-01-06
  • 2022-12-23
相关资源
相似解决方案