本帖最后由 dzlzyydzlzgd 于 2011-04-22 15:12:05 编辑

解决方案 »

  1.   

    WebRequest req = WebRequest.Create(url);
                    HttpWebRequest httpreg = (HttpWebRequest)req;                
                    httpreg.Method = "GET";
                    httpreg.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; CIBA)";
                    WebResponse resp = httpreg.GetResponse();
                    StreamReader reader = new StreamReader(resp.GetResponseStream(), encoding);
    string result = reader.ReadToEnd();
    ....
      

  2.   

    可以了,太感谢了!!!
    为什么直接用WebRequest不行呢?
    还有我刚测试了一下把 httpreg.UserAgent = "Mozilla/4.0 ..."; 这一行去掉他就读不到数据了,为什么?
      

  3.   

    UserAgent标识请求者的某些信息,不同浏览器可能不同,加上就是了
      

  4.   


    为什么直接用WebRequest不行呢?解释一下咯
    分全给你了,谢谢
      

  5.   

    只有通过WebRequest构造了HttpWebRequest,才能设置诸如contentType、UserAgent、CookieContainer等http标头信息!
      

  6.   

    /*
    *   生成 [项目组交付件大小曲线] 之直方图
    *    @param
    *        flag 标识获取数据的方式 1为文件夹,2为文件
    *    @param
    *        isrb 标识项目组,1为开发组,2为RB组
    *    @author:remember.deng
    *    @create date:2011-05-07
    *///全局变量集
    var vst_zhg={
      fdlen:0,
      fIdAry:new Array(),
      sType:"vi",
      blDate:"",
      flag:2
    };function toZFImg(flag,isrb){
        vst_zhg.flag=flag;
        var ds = AjaxHandler.GetFolderFileSpanByDate(vst_zhg.flag).value;
        if(vst_zhg.flag==0||ds==null||ds.length==0){
            $("#no_data").show();
            $("#chart").hide();
            return;
        }
        $("#no_data").hide();
        $("#chart").show();
        $("#chart").text("");    var mainStr = "<div class='flzhg' id='my_fl_fm'>";
        $("#showFilter").show();
        if(isrb==0){
            ele("selCompType").options.add(new Option("基线","bl")); 
        }
        vst_zhg.fdlen = ds.length;
        var spLen;
        //每个文件构建一个大矩形
        for(var i=0;i<ds.length;i++){
            var item=ds[i];        var fStr = "<div class='fDataView'><div class='fname'>" + item["FName"] + "</div><ul>";
            vst_zhg.fIdAry[i]=item["FId"];
            var curSpan = item["FSpan"];
            spLen = curSpan.length;
            
            var tval=0;
            //每个数据项构建一个小矩形
            for(var j=0;j<curSpan.length;j++){           
                var dataStr = curSpan[j] == null ? "" : curSpan[j];
                fStr += "<li id='span_item_" + i + "_" + j + "' app='ti_"+j+"'>" + dataStr + "</li>"; 
            }
            
            fStr += "<li style='float:none; height:24px; width:1px;'></li>"
            fStr += "</ul></div>";
            mainStr += fStr;
        }    mainStr += "</div>";
        $("#chart").html(mainStr);  //将组装好的图形植入页面    //合计
        var ttStr = "<div class='fDataView'><div class='fname'>合计</div><ul>";
        for(var i=0;i<spLen;i++){
            var dsi = $("li[app*=ti_"+i+"]");
            var tval=0;
            for(var j=0;j<dsi.length;j++){
                if(!isNull(dsi[j].innerText)){
                    tval += parseInt(dsi[j].innerText);
                }
            }
            ttStr += "<li id='span_total_" + i + "' class='"+(tval==0?"no":"tt")+"'>" + (tval==0?"":tval+"") + "</li>"
        }
        ttStr += "<li style='float:none; height:24px; width:1px;'></li>"
        ttStr += "</ul></div>"
        $("#my_fl_fm").append(ttStr);
        
        //横坐标之日期范围
        var myTicks = AjaxHandler.GetCurDateSpanStr().value;
        var myWidth = myTicks.length*60+20;    tickStr = "<div class='fltick'><ul>";
        for(var i=0;i<myTicks.length;i++){
            tickStr += "<li>" + myTicks[i] + "</li>"
        }
        tickStr += "</ul></div>";
        $("#my_fl_fm").append(tickStr).css("width",myWidth);      
        sortByType("sp");   //默认对比方式为首尾
    }
      

  7.   

    /*
    * 根据对比方式排列数据样式
    *    @param
    *        type 对比方式
    */
    function sortByType(type){
        //遍历比对的文件
        for(var i=0;i<vst_zhg.fdlen;i++){
            var spanItems = $("li[id*=span_item_"+i+"_]");
            var first=0,last=0,fIndex=0,lIndex=0;
            //遍历对比的周期
            if(type == "sp"){  //首尾方式
                for(var j=0;j<spanItems.length;j++){
                    if($.trim(spanItems[j].innerText)==""){
                        spanItems[j].className = "no";
                    }else{  //找到第一个不为空的数据
                        first = parseInt(spanItems[j].innerText);
                        spanItems[j].className = "eq";  //第一个样式无条件为 eq
                        fIndex = j;
                        for(var k=spanItems.length-1;k>=0;k--){
                            if($.trim(spanItems[k].innerText)==""){
                                spanItems[k].className = "no";
                            }else{  //找到最后一个不为空的数据
                                last = parseInt(spanItems[k].innerText);
                                lIndex=k;
                                break;
                            }
                        }
                        break;  //不管找没找到最后一个,上面的代码已尝试了可能的寻找,在这里中止循环
                    }
                }
                //找到了最后一个,而且保证和第一个不是同一个
                if(last != 0 && fIndex != lIndex){
                    var lastitem = spanItems[lIndex];
                    var clsName,tip;
                    if(last > first){
                        clsName = "gq";
                        tip = "文件变大:" + (last-first) + "B ("+ setNumDouble((last-first)/1024) +"K)";
                    }else if(last == first){
                        clsName = "eq";
                        tip = "时间更新,大小不变";
                    }else if(last < first){
                        clsName = "lq";
                        tip = "文件变小:" + (first-last) + "B ("+setNumDouble((first-last)/1024) +"K)";
                    }
                    lastitem.className = clsName;
                    lastitem.title = tip;
                    
                    var clsName2,tip2;
                    //设置first 和 last 中间的数据样式
                    for(var x=fIndex+1;x<lIndex;x++){
                        var mditem = spanItems[x];
                        if($.trim(mditem.innerText)==""){
                            clsName2="no";
                            tip2 = "记录缺失";
                        }else{
                            clsName2="tt";
                            tip2 = "中间数据不参与比较";
                        }
                        mditem.className = clsName2;
                        mditem.title = tip2;
                    }
                }
            }else if(type == "vi"){    //相邻方式
      

  8.   

    for(var j=0;j<spanItems.length;j++){
                    var tip = "时间更新,大小不变";    //提示
                    var clsName = "eq";     //样式
                    var itemData = spanItems[j].innerText;
                    if(isNull(itemData)){   //空数据忽略
                        clsName = "no";
                        tip = "记录缺失";
                    }else{
                        if(j==0){
                            clsName = "eq"; //第一条数据,没有比对的对象,所以默认为等值样式
                        }else{
                            //对比新数据与旧数据的关系
                            for(var k=j-1;k>0;k--){
                                var compData = spanItems[k].innerText;
                                if(!isNull(compData)){
                                    itemData = parseInt(itemData);
                                    compData = parseInt(compData);
                                    if(compData > itemData){    //减少
                                        clsName = 'lq'; 
                                        var sdnum = (compData -itemData);
                                        tip = "文件变小:" + sdnum + "B (" + setNumDouble(sdnum/1024) + "K)";
                                    }else if(compData < itemData){  //增加
                                        clsName = 'gq';
                                        var sdnum = (itemData -compData);
                                        tip = "文件变大:" + sdnum + "B (" + setNumDouble(sdnum/1024) + "K)";
                                    }else if(compData == itemData){ //相等
                                        clsName = 'eq';
                                        tip = "时间更新,大小不变"
                                    }
                                    break;
                                }
                            }
                        }
                    }
                    spanItems[j].className = clsName;
                    spanItems[j].title = tip;
                }
            }else if(type == "bl"){    //基线方式
                var blValue = AjaxHandler.GetFolderFileSizeByDate(vst_zhg.blDate,vst_zhg.fIdAry[i],vst_zhg.flag==2).value;
                for(var j=0;j<spanItems.length;j++){
                    if($.trim(spanItems[j].innerText)==""){
                        spanItems[j].className = "no";
                    }else{
                        var curritem = spanItems[j];
                        var currData = curritem.innerText;
                        var clsName,tip;
                        if(blValue==0){
                            clsName = "gq";
                            tip = "此文件没有基线,属于新增文件"
                        }else if(currData > blValue){
                            clsName = "gq";
                            tip = "基线:" + blValue + "B (" + setNumDouble(blValue/1024) + "K)\n当前已超出:" + (currData-blValue) + "B ("+ setNumDouble((currData-blValue)/1024) +"K)";
                        }else if(currData == blValue){
                            clsName = "eq";
                            tip = "与基线:" + blValue + "B (" + setNumDouble(blValue/1024) + "K) 相等";
                        }else if(currData < blValue){
                            clsName = "lq";
                            tip = "基线:" + blValue + "B (" + setNumDouble(blValue/1024) + "K)\n当前还差:" + (blValue-currData) + "B ("+setNumDouble((blValue-currData)/1024) +"K)";
                        }
                        curritem.className = clsName;
                        curritem.title = tip;
                    }
                }
            }
        }
      

  9.   

    //排序合计数据
        var totals = $("li[id*=span_total_]");
        var fst=0,lst=0;
        for(var i=0;i<totals.length;i++){
            var titem = totals[i];
            var tval = totals[i].innerText;
            var tip = "";
            var clsName = "eq";
            if(isNull(tval)){
                clsName = "no";
                tip = "记录缺失";
            }else{
                if(type == "sp"){
                    fst = parseInt(tval);
                    var fInx=i,lInx;
                    for(var j=totals.length-1;j>0;j--){
                        if(!isNull(totals[j].innerText)){
                            lInx = j;
                            lst = parseInt(totals[j].innerText);
                            break;
                        }
                    }
                    if(lst!=0){
                        if(lst==fst){
                            clsName = "eq";
                            tip = "时间更新,大小不变"
                        }else if(lst > fst){
                            clsName = "gq";
                            tip = "合计变大:" + (lst-fst) + "B (" + setNumDouble((lst-fst)/1024) + "K)";
                        }else if(lst < fst){
                            clsName = "lq";
                            tip = "合计变小:" + (fst-lst) + "B (" + setNumDouble((fst-lst)/1024) + "K)";
                        }
                        totals[fInx].className = "eq";
                        totals[lInx].className = clsName;
                        totals[lInx].title = tip;
                        
                        var clsName2,tip2;
                        //设置first 和 last 中间的数据样式
                        for(var x=fIndex+1;x<lIndex;x++){
                            var mditem = totals[x];
                            if($.trim(mditem.innerText)==""){
                                clsName2="no";
                                tip2 = "记录缺失";
                            }else{
                                clsName2="tt";
                                tip2 = "中间数据不参与比较";
                            }
                            mditem.className = clsName2;
                            mditem.title = tip2;
                        }
                        break;
                    }
                }else if(type == "vi"){
                    for(var j=i-1;j>0;j--){
                        var compData = totals[j].innerText
                        if(!isNull(compData)){
                            itemData = parseInt(tval);
                            compData = parseInt(compData);
                            if(compData > itemData){    //减少
                                clsName = 'lq'; 
                                var sdnum = (compData -itemData);
                                tip = "合计变小:" + sdnum + "B (" + setNumDouble(sdnum/1024) + "K)";
                            }else if(compData < itemData){  //增加
                                clsName = 'gq';
                                var sdnum = (itemData -compData);
                                tip = "合计变大:" + sdnum + "B (" + setNumDouble(sdnum/1024) + "K)";
                            }else if(compData == itemData){ //相等
                                clsName = 'eq';
                                tip = "时间更新,大小不变"
                            }
                            break;
                        }
                    }
                }else if(type == "bl"){
                    clsName = "tt";
                    tip = "合计数据不参与基线比较"
                }
            }
            titem.className = clsName;
            titem.title = tip;
        }
    }
      

  10.   

    /*
    *  选择对比方式
    */
    function chCompType(val){
        $("#blShow").remove();
        if(val=="bl"){
            var iterline = Data_Graph_ZhifGraph.GetLastIterLine().value;
            var smt = $("#selCompType");
            var pos = smt.offset();
            vst_zhg.blDate = FormatDate(iterline["BeginDate"]);
            $("#showFilter").append("<div id='blShow'>当前基线:" + iterline["IterativeName"] + ",开始时间:" + vst_zhg.blDate + "</div>");
            $("#blShow").css({
                "left":pos.left+smt.width()+10,
                "top":pos.top
            });
        }
        sortByType(val);   
    }
    /*
    * 数据筛选
    */
    function filterData(val){
        var lqd = $(".fDataView").has("li[class*=lq]");
        var gqd = $(".fDataView").has("li[class*=gq]");
        var all = $(".fDataView");    if(val == "all"){
            all.show();
        }else if(val == "onlyBig"){
            all.hide();
            gqd.show();
        }else if(val == "onlySmall"){
            all.hide();
            lqd.show();
        }
    }
      

  11.   

    /*
    *   生成CPU、内存、Flash资源使用视图
    *    @param
    *        pbdata 产品单板数据集
    *    @param
    *        chartId 显示视图的div Id
    *    @param
    *        beginDate 查询数据的开始日期
    *    @param
    *        endDate 查询数据的结束日期
    *    @author:remember.deng
    *    @create date:2011-04-25
    */
    function toCMFImg(pbdata, chartId, beginDate, endDate) {
        if (pbdata == null) {
            $("#" + chartId).html("<img src='../../Images/new_empty.png' /><br /><span class='chart_empty'>没有可显示的数据</span>");
            return;
        }
        var vst_cmf = {
            tipmap:{
                val:new Array(),
                hint:new Array(),
                xindex:new Array(),
                sindex:new Array()
            },
            ymax: 0,
            title:""
        };
        
        //注册jqplot的鼠标移动到数据节点的事件
        $.jqplot.config.enablePlugins = true;
        $.jqplot.eventListenerHooks.push(['jqplotMouseMove', myMove]);    var hasData = false;
        var lAry = new Array();
        var sAry = new Array();
        
        var dLength = 0;
        for (var i = 0; i < pbdata.length; i++) {
            if (pbdata[i] != null) {
                dLength++;
            }
        }
            
        var tInx = 0;
    if (chartId == "chart_cpu") {   //CPU占用率视图
        var realAry = new Array();
            var smoothAry = new Array();
    for (var i = 0; i < pbdata.length; i++) {
    if (pbdata[i] != null) {
    vst_cmf.ymax=100;   //占用率最高为100

    //从数据源(DataTable)中获取值
    var smooth = pbdata[i].Rows[0]["SmoothUsage"];  //平均值
    var real = pbdata[i].Rows[0]["RealUsage"];  //实时值
    //记录在tipMap,这个很重要,用来实现数据动态提示
    vst_cmf.tipmap.val[i] = real;
    vst_cmf.tipmap.hint[tInx] = "<ul><li>Real: " + real + "%</li></ul>";
    vst_cmf.tipmap.xindex[tInx] = i+1;
    vst_cmf.tipmap.sindex[tInx] = 0;

    sInx++;
    vst_cmf.tipmap.val[tInx + dLength] = smooth;
    vst_cmf.tipmap.hint[tInx + dLength] = "<ul><li>Smooth: " + smooth + "%</li></ul>";
    vst_cmf.tipmap.xindex[tInx + dLength] = i+1;
    vst_cmf.tipmap.sindex[tInx + dLength] = 1;

    tInx++;

    realAry[i] = real;
    smoothAry[i] = smooth;
    hasData = true;
    }

    sAry[0] = {label:"real"};
    sAry[1] = {label:"smooth"};
    lAry[0]=realAry;
    lAry[1]=smoothAry;
    }
    } else if (chartId == "chart_mem") {    //内存使用情况视图
      

  12.   

    var sysAry = new Array();
            var extAry = new Array();
            var usrAry = new Array();
            var staAry = new Array();
            var sumAry = new Array();
    for (var i = 0; i < pbdata.length; i++) {
    if (pbdata[i] != null) {
    var sysTotal = pbdata[i].Rows[0]["SysTotal"];   //系统总大小
    var sysFree = pbdata[i].Rows[0]["SysFree"];     //系统空闲
    var sysMaxUseable = pbdata[i].Rows[0]["SysMaxUseable"];     //系统最大可用
    var extTotal = pbdata[i].Rows[0]["ExtTotal"];   //扩展总大小
    var extFree = pbdata[i].Rows[0]["ExtFree"];     //扩展空闲
    var extMaxUseable = pbdata[i].Rows[0]["ExtMaxUseable"];     //扩展最大可用
    var usrTotal = pbdata[i].Rows[0]["UsrTotal"];   //用户区总大小
    var usrFree = pbdata[i].Rows[0]["UsrFree"];     //用户区空闲
    var usrMaxUseable = pbdata[i].Rows[0]["UsrMaxUseable"];     //用户区最大可用
    var staptTotal = pbdata[i].Rows[0]["StaptTotal"];   //Stap区总大小
    var staptFree = pbdata[i].Rows[0]["StaptFree"];     //Stap区空闲
    var staptMaxUseable = pbdata[i].Rows[0]["StaptMaxUseable"]; //系统最大可用
    var sumTotal = pbdata[i].Rows[0]["SumTotal"];   //系统总大小
    var sumFree = pbdata[i].Rows[0]["SumFree"];     //系统空闲
    var sumMaxUseable = pbdata[i].Rows[0]["SumMaxUseable"];     //系统最大可用       

    var tstr = "<ul><li><table cellpadding='2' cellspacing='0' border='0'>" +
    "<tr><th colspan='2' style='border-bottom:1px #FFCC00 dashed' class='bred' align='left'>$0</th></tr>" +
    "<tr><th align='right'>Used</th><td>$1</td></tr>" +
    "<tr><th align='right'>Total</th><td>$2</td></tr>" +
    "<tr><th align='right'>Free</th><td>$3</td></tr>" +
    "<tr><th align='right'>MaxUsab</th><td>$4</td></tr>" +
    "</table></li></ul>";
    var sInx = 0;
      

  13.   

    if(sysTotal!=-1){
    sysAry[i]=sysTotal-sysFree;
    setTipMap(tInx,i+1,sInx,sysAry[i],
    tstr.replace("$0","Sys").replace("$1",sysAry[i]).replace("$2",sysTotal).replace("$3",sysFree).replace("$4",sysMaxUseable==-1?"--":sysMaxUseable));

    sAry[sInx] = {label:"Sys"};
    lAry[sInx] = sysAry;
    tInx++;
    sInx++;
    }
    if(extTotal!=-1){
    extAry[i]=extTotal-extFree;

    setTipMap(tInx,i+1,sInx,extAry[i],
    tstr.replace("$0","Ext").replace("$1",extAry[i]).replace("$2",extTotal).replace("$3",extFree).replace("$4",extMaxUseable==-1?"--":extMaxUseable));

    sAry[sInx] = {label:"Ext"};
    lAry[sInx] = extAry;
    sInx++;
    tInx++;
    }
    if(usrTotal!=-1){
    usrAry[i]=usrTotal-usrFree;

    setTipMap(tInx,i+1,sInx,usrAry[i],
    tstr.replace("$0","Usr").replace("$1",usrAry[i]).replace("$2",usrTotal).replace("$3",usrFree).replace("$4", usrMaxUseable==-1?"--":usrMaxUseable));

    sAry[sInx] = {label:"Usr"};
    lAry[sInx] = usrAry;
    sInx++;
    tInx++;
    }
    if(staptTotal!=-1){
    staAry[i]=staptTotal-staptFree;

    setTipMap(tInx,i+1,sInx,staAry[i],
    tstr.replace("$0","Sta").replace("$1",staAry[i]).replace("$2",staptTotal).replace("$3",staptFree).replace("$4", staptMaxUseable==-1?"--":staptMaxUseable)); sAry[sInx] = {label:"Sta"};
    lAry[sInx] = staAry;
    sInx++;
    tInx++;
    }
    if(sumTotal!=-1){
    sumAry[i]=sumTotal-sumFree;
    setTipMap(tInx,i+1,sInx,sumAry[i],
    tstr.replace("$0","Total").replace("$1",sumAry[i]).replace("$2",sumTotal).replace("$3",sumFree).replace("$4", sumMaxUseable==-1?"--":sumMaxUseable));

    sAry[sInx] = {label:"Total"};
    lAry[sInx] = sumAry;
    sInx++;
    tInx++;
    }

    if(vst_cmf.ymax<sumTotal)
    vst_cmf.ymax = sumTotal;
    hasData = true;
    }
    }
      

  14.   

    } else if (chartId == "chart_flash") {  //Flash使用情况视图
        var tffsAry = new Array();
            var tffs1Ary = new Array();
            var tffs2Ary = new Array();
            var htffsAry = new Array();
    for (var i = 0; i < pbdata.length; i++) {
    if (pbdata[i] != null) {
    var tffsTotal = pbdata[i].Rows[0]["TffsTotal"];
    var tffsFree = pbdata[i].Rows[0]["TffsFree"];
    var tffs1Total = pbdata[i].Rows[0]["Tffs1Total"];
    var tffs1Free = pbdata[i].Rows[0]["Tffs1Free"];
    var tffs2Total = pbdata[i].Rows[0]["Tffs2Total"];
    var tffs2Free = pbdata[i].Rows[0]["Tffs2Free"];
    var hTffsTotal = pbdata[i].Rows[0]["HTffsTotal"];
    var hTffsFree = pbdata[i].Rows[0]["HTffsFree"];

    var tstr="<ul><li><table cellpadding='2' cellspacing='0' border='0'>"+
    "<tr><th colspan='2' style='border-bottom:1px #FFCC00 dashed' class='bred' align='left'>$0</th></tr>"+
    "<tr><th align='right'>Used</th><td align='left'>$1</td></tr>"+
    "<tr><th align='right'>Total</th><td align='left'>$2</td></tr>"+
    "<tr><th align='right'>Free</th><td align='left'>$3</td></tr>"+
    "</table></li></ul>";
    var sInx = 0;

    if(tffsTotal!=-1){
    tffsAry[i]=tffsTotal-tffsFree;
    setTipMap(tInx,i+1,sInx,tffsAry[i],
    tstr.replace("$0","Tffs").replace("$1",tffsAry[i]).replace("$2",tffsTotal).replace("$3",tffsFree));

    sAry[sInx] = {label:"Tffs"};
    lAry[sInx] = tffsAry;
    sInx++; 
    tInx++;
    }
    if(tffs1Total!=-1){
    tffs1Ary[i]=tffs1Total-tffs1Free;
    setTipMap(tInx,i+1,sInx,tffs1Ary[i],
    tstr.replace("$0","Tffs1").replace("$1",tffs1Ary[i]).replace("$2",tffs1Total).replace("$3",tffs1Free));

    sAry[sInx] = {label:"Tffs1"};
    lAry[sInx] = tffs1Ary;
    sInx++; 
    tInx++;
    }
    if(tffs2Total!=-1){
    tffs2Ary[i]=tffs1Total-tffs2Free;
    setTipMap(tInx,i+1,sInx,tffs2Ary[i],
    tstr.replace("$0","Tffs2").replace("$1",tffs2Ary[i]).replace("$2",tffs2Total).replace("$3",tffs2Free));

    sAry[sInx] = {label:"Tffs2"};
    lAry[sInx] = tffs2Ary;
    sInx++; 
    tInx++;
    }
    if(hTffsTotal!=-1){
    htffsAry[i]=hTffsTotal-hTffsFree;
    setTipMap(tInx,i+1,sInx,htffsAry[i],
    tstr.replace("$0","HTffs").replace("$1",htffsAry[i]).replace("$2",hTffsTotal).replace("$3",hTffsFree));

    sAry[sInx] = {label:"HTfss"};
    lAry[sInx] = htffsAry;
    sInx++; 
    tInx++;
    }
    if(vst_cmf.ymax<tffs2Total)
    vst_cmf.ymax = tffs2Total;
    hasData = true;
    }
    }
    }
      

  15.   

    //没有任何数据,返回
        if (!hasData) {
            $("#" + chartId).html("<img src='../../Images/new_empty.png' /><br /><span class='chart_empty'>没有可显示的数据</span>");
            return;
        }
        
        //曲线颜色,指定范围的最后一天数据比第一天大,为红,否则为绿
        var cAry = new Array();
        var ci=0;
        if(lAry.length>0){
            for(var i=0;i<lAry.length;i++){
                var le=lAry[i]
                if(le!=null){
                    var first = 0;
                    var last = 0;
                    for(var j=0;j<le.length;j++){
                        if(le[j]!=null){
                            first = le[j];
                            break;
                        }
                    }
                    for(var j=le.length-1;j>=0;j--){
                        if(le[j]!=null){
                            last = le[j];
                            break;
                        }
                    }
                    var color = "";
                    if(last > first){
                        color="#ff0000"
                    }else{
                        color="#66cc66";
                    }
                    
                    cAry[ci]=color;
                    ci++;
                } 
            }
        }
        
        $("#" + chartId).text("");  //清空图表内容,此处不能用 .html("")
        $("#" + chartId).show();
        
        var myTicks = AjaxHandler.GetDateSpanStr(beginDate, endDate).value;    //构建图表
        plot1 = $.jqplot(chartId, lAry, {
            legend:{
                show:true, 
                renderer:$.jqplot.EnhancedLegendRenderer,
                placement:'outsideGrid'
            },
            seriesColors: cAry,
            seriesDefaults: {
                breakOnNull: true
            },
            series:sAry,
            axes: {
                xaxis: {
                    ticks: myTicks,
                    renderer: $.jqplot.CategoryAxisRenderer,
                    rendererOptions: {
                        tickRenderer: $.jqplot.CanvasAxisTickRenderer
                    },
                    tickOptions: {
                        angle: -60,
                        fontStretch: 1
                    }
                },
                yaxis: {
                    min: 0,
                    max: vst_cmf.ymax,
                    numberTicks: 11
                }
            }
        });
        $('body').append('<div id="myToolTip"></div>');
      

  16.   

    /*
        * 设置动态提示Map
        */
        function setTipMap(cindex,xindex,sindex,val,hint){
            vst_cmf.tipmap.xindex[cindex] = xindex;
            vst_cmf.tipmap.sindex[cindex] = sindex;
            vst_cmf.tipmap.val[cindex] = val;
            vst_cmf.tipmap.hint[cindex] = hint;       
        }
        
        /*
        * 当光标移到数据焦点时,呈现动态提示
        */
        function myMove(ev, gridpos, datapos, neighbor, plot) {
            if (neighbor == null) {
                $('#myToolTip').fadeOut().empty();
                isShowing = false;
            }
            if (neighbor != null) {
                if ($('#myToolTip').is(':hidden')) {
                    var cdv = neighbor.data + ""; 
                    var cindex = cdv.substring(0, cdv.indexOf(','));
                    var cvalue = cdv.substring(cdv.indexOf(',')+1);
                    var myText = "";
                    var sindex = neighbor.seriesIndex;
                    for(var i=0;i<vst_cmf.tipmap.val.length;i++){
                        if(vst_cmf.tipmap.val[i] == cvalue &&
                            vst_cmf.tipmap.xindex[i] == cindex &&
                            vst_cmf.tipmap.sindex[i] == sindex){
                            myText = vst_cmf.tipmap.hint[i];
                            break;    
                        }
                    }
                    $('#myToolTip').html(myText);
                    var gw = $("#"+chartId).width();
                    var gh = $("#"+chartId).height();
                    var tw = $('#myToolTip').width();
                    var th = $('#myToolTip').height();
                    var tl=gridpos.x-2;
                    var tt=gridpos.y-2;
                    if(gridpos.x+tw>gw){
                        tl = gw-tw-4;
                    }
                    if(gridpos.y+th>gh){
                        tt = gh-th;
                    }
                    
                    $('#myToolTip').css({ left: tl, top: tt }).fadeIn();
                }
            }
        }
    }
      

  17.   

    using System;
    using System.Collections.Generic;
    using System.Text;using System.Runtime.InteropServices;
    using System.IO;
    using System.Text.RegularExpressions;
    using System.Threading;using System.Diagnostics;namespace KillForms
    {
        class Program
        {
            /* 注册Windows API 事件 */
            [DllImport("User32.dll", EntryPoint = "FindWindow")]    //查找窗口
            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
            [DllImport("User32.dll", EntryPoint = "FindWindowEx")]
            private static extern IntPtr FindWindowEx(IntPtr parentWnd, IntPtr childWnd, string lpClassName, string lpWindowName);
            [DllImport("User32.dll", EntryPoint = "SendMessage")]   //给窗口发送消息
            private static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);        static void Main(string[] args)
            {
                Console.WriteLine("\t\t\t\t窗口杀手V1.0\n\n功能描述:自动关闭系统弹出的对话框和各种窗口\n配置说明:通过修改FormConfig.txt,可自定义要kill的窗口及监测时间间隔\n" +
                          "配置详细:1.CloseFormList: 需要kill的窗口名称,将其写在{}之内,数量不限,\n\t  用逗号(,)隔开。" +
                          "  2.Interval: 监测时间间隔,以秒为单位\n");
                bool isBreak;
                do
                {
                    isBreak = CloseForm();
                } while (isBreak);
            }
      

  18.   


            //关闭窗口
            protected static bool CloseForm()
            {
                FileStream fs = null;
                StreamReader sr = null;
                try
                {
                    //消息常量
                    const int VM_CLOSE = 0x010;   //关闭窗口
                    //从配置文件读取要关闭的窗口
                    fs = new FileStream("FormConfig.txt", FileMode.Open);
                    sr = new StreamReader(fs, Encoding.Default);
                    string conStr = sr.ReadToEnd().Replace("\r\n", "").Replace("\t", "");
                    Regex rgx = new Regex(@"CloseFormList:\{(?<formStr>.+)\}Interval=(?<itv>\d+)");
                    Match mth = rgx.Match(conStr);
                    if (mth.Success)
                    {
                        string[] formAry = mth.Groups["formStr"].Value.Split(',');
                        foreach (string form in formAry)
                        {
                            if (!string.IsNullOrEmpty(form))
                            {
                                IntPtr parentWnd = FindWindow(null, form);
                                if (!parentWnd.Equals(IntPtr.Zero))
                                {
                                    SendMessage(parentWnd, VM_CLOSE, 0, 0);
                                    Console.WriteLine("目标窗口[" + form + "]于" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "出现,已成功将其关闭!");
                                }
                            }
                        }
                        Console.WriteLine("KillForms last run time:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        Thread.Sleep(int.Parse(mth.Groups["itv"].Value) * 1000);
                        return true;
                    }
                    else
                    {
                        Console.WriteLine("配置文件读取失败,请输入正确的窗口名和时间间隔");
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("程序运行过程中发生错误,原因是:" + ex.Message);
                    Console.Read();
                    return false;
                }
                finally
                {
                    //关闭文件流并退出应用程序
                    if (sr != null) sr.Close();
                    if (fs != null) fs.Close();
                }
            }
        }
    }