如何在Iframe中水平滚动表格

时间:2012-05-25 10:10:19

标签: javascript jquery html css

我的aspx页面中有一个iframe。此框架包含一个包含动态列数的html表。

我不想在iframe中显示滚动因此我在表格中使用滚动,但此滚动未显示表格的完整列。

这是html代码

Main Page Code
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>


<style type="text/css">
    #mNav
    {
        background: url("../Content/bg_mNav.jpg") repeat-x scroll 0 100% transparent;
        border-bottom: 1px solid #025776;
        position: relative;
        z-index: 999;
    }

    #admxTitle
    {
        background: url("../Content/dashboard_title.png") no-repeat scroll 0 100% transparent;
        position: relative;
        z-index: 999;
    }
</style>

    

$(document).ready(function () {

   // alert(screen.width+"X"+screen.height);

    //Populating Report list tree 
    var reportDir = <%=ViewData["ReportDirlist"] %>;
    if(reportDir){
       $('#reporting').empty();
       readDir(reportDir,1,'reporting','reporting');
    }
    $("#reporting").treeview();

    //Populating Analytics list tree 
    var analyticsDir = <%=ViewData["AnalyticsDirlist"] %>;
    if(analyticsDir){
       $('#analytics').empty();
       readDir(analyticsDir,1,'analytics','analytics');
    }
    $("#analytics").treeview();


    //Intiontiate 
    $("#tabs").tabs();
    // alert(json);
    //by default trigger click on first node
    //$('#node-1 span:first').trigger('click')

});



function readDir(obj,level,parentid,container) {

    var tagObj='' ;
    var filename;
    //console.log('DIRECTORY:'+obj.name + ':' + obj.state);

    var file = obj.file;
    if(file){
        if(file.length)
         {
            for (i = 0; i < file.length; i++) {

                tempid=parentid+'-F'+(i+1);
                filename=(file[i].name).replace(/-/gi, " ");
                // tagObj='<li id="li'+tempid+'" ><span class="file" onclick="clickHandler(\''+file[i].name+'\',\''+file[i].data+'\',\'li'+tempid+'\')">'+filename+'</span></li>'
                tagObj='<li id="li'+tempid+'" ><span class="file" onclick="clickHandler(\''+container+'\',\''+file[i].name+'\',\''+file[i].data+'\',\'li'+tempid+'\')">'+filename+'</span></li>'


                if( parentid==container)
                $('#'+container).append(tagObj);
                else
                $('#ul'+parentid).append(tagObj);


                //console.log('FILE :' + file[i].name + ':' + file[i].data);
            }
        }else{

                tempid=parentid+'-F1';
                filename=(file.name).replace(/-/gi, " ");
                tagObj='<li id="li'+tempid+'" ><span class="file" onclick="clickHandler(\''+container+'\',\''+file.name+'\',\''+file.data+'\',\'li'+tempid+'\')">'+filename+'</span></li>'

                if( parentid==container)
                $('#'+container).append(tagObj);
                else
                $('#ul'+parentid).append(tagObj);

            //console.log('FILE :' + file.name + ':' + file.data);
        }
    }


    var dir=obj.directory;
    if(dir){

        if(dir.length)
         {


           for (j = 0; j < dir.length; j++) {

                tempid=parentid+'-D'+(j+1);

                if(dir[j].state=='close')
                tagObj='<li id="li'+tempid+'" class="closed"><span class="folder">'+dir[j].name+'</span></li>'
                else
                tagObj='<li id="li'+tempid+'"><span class="folder">'+dir[j].name+'</span></li>'

                if( parentid==container)
                $('#'+container).append(tagObj);
                else
                $('#ul'+parentid).append(tagObj);

                $("#li"+tempid).append('<ul id="ul'+tempid+'"></ul>');

                readDir(dir[j],(level+1),tempid,container);
            }


        }else{


             tempid=parentid+'-D1'

             if(dir.state=='close')
              tagObj='<li id="li'+tempid+'" class="closed"><span class="folder">'+dir.name+'</span></li>'
             else
              tagObj='<li id="li'+tempid+'"><span class="folder">'+dir.name+'</span></li>'

             if( parentid==container)
                $('#'+container).append(tagObj);
             else
                $('#ul'+parentid).append(tagObj);


              $("#li"+tempid).append('<ul id="ul'+tempid+'"></ul>');


             readDir(dir,(level+1),tempid,container);

        }
    }


    return;

}



function clickHandler(container,name,data,curr_report_id) {

    $('.file').css('color','#4A4344');
    $('#'+curr_report_id+' .file').css('color','Blue');

    if(container=='reporting')
      $('#containerFrame').attr('src', './AdmxReportView?data='+data+'&name='+name);
    else
      $('#containerFrame').attr('src', './AdmxAnalyticsView?data='+data+'&name='+name);

}


</script>
<table style='width: 100%; height: 100%; position: absolute'>
    <tr style='width: 100%; height: 100%;'>
        <td style='width: 20%; height: 100%; vertical-align: top;'>
            <table style='width: 100%; height: 100%;'>
                <tr style='width: 100%; height: 10%;'>
                    <td>
                        <img src="../../Content/admx-dashboard-logo.gif" style="height: 100px; width: 250px;
                            margin-top: 2px; margin-bottom: 5px" alt="" />
                    </td>
                </tr>
                <tr style='width: 100%; height: 80%;'>
                    <td style="vertical-align: top">
                        <div id="tabs" style="height: 100%; width: 95%;">
                            <ul style="width: 95%;">
                                <li><a href="#tabs-reporting">Reporting</a></li>
                                <li><a href="#tabs-analytics">Analytics</a></li>
                            </ul>
                            <div id="tabs-reporting">
                                <div id='reporting_tree_block'>
                                    <!-- rendering directory list -->
                                    <ul id="reporting" class="filetree treeview-famfamfam">
                                    </ul>
                                </div>
                            </div>
                            <div id="tabs-analytics">
                                <div id='analytics_tree_block'>
                                    <!-- rendering directory list -->
                                    <ul id="analytics" class="filetree treeview-famfamfam">
                                    </ul>
                                </div>
                            </div>
                        </div>
                    </td>
                </tr>
            </table>
        </td>
        <td style='width: 80%; height: 100%;'>
            <iframe id='containerFrame' frameborder="0" scrolling="no" style="width: 99%; height: 100%;
                position: relative;" src='./AdmxIndexView' />
        </td>
    </tr>
</table>

iframe src的代码

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>


<style type="text/css">
    .no_data
    {
        height: 440px;
        width: 705px;
    }
</style>

    

var columnList;
$(document).ready(function () {

    var myDate = new Date();
    var toDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' +myDate.getFullYear();
    var fromDate =myDate.getMonth() + '/' + myDate.getDate() + '/' +myDate.getFullYear();


    $("#from_date").datepicker({
        showOn: "button",
        buttonImage: "content/calendar.gif",
        buttonImageOnly: true,

    }).val(fromDate);

    $("#to_date").datepicker({
        showOn: "button",
        buttonImage: "content/calendar.gif",
        buttonImageOnly: true,

    }).val(toDate);

    $("#tabs").tabs();


    //$('div[id^="tabs-"]').empty();
    var report='<%=Request.QueryString["data"]%>';
     $('span[id$="_bg"]').find('img').attr('src','/content/dashboard/images/'+report.toLowerCase()+'.png');

    initGridColumnList('<%=ViewData["colList"] %>');
    initChartReportListWidget('piechart');
    initChartReportListWidget('barchart');


});


 function initChartReportListWidget(chartType) {
  var report='<%=Request.QueryString["data"]%>';

         <%
            IList<string> reportNameList = ViewData["ReportList"] as IList<string>;
            int i=0;
            if (reportNameList.Count()>1) { %>

                    $('#td_'+chartType+'_result').append('<div id="'+chartType+'_accordion" />')
                    <%foreach (string title in reportNameList) {
                      string reporttitle=title.Split('|')[0];
                      i++;
                     %>
                    $('#'+chartType+'_accordion').append('<h3><a href="#"><% =reporttitle%></a></h3>') ; 
                    $('#'+chartType+'_accordion').append('<div style="width:706;height:441"><img id="img_'+chartType+'_result_<%=i %>" src="" alt="<% =reporttitle%>" height="440px" width="705px"/></div>'); 

                    <% }
            }else{ 
            foreach (string title in reportNameList) { 
                string reporttitle=title.Split('|')[0];
            %>
                    $('#td_'+chartType+'_result').append('<img id="img_'+chartType+'_result" src="" alt="<% =reporttitle%>" height="440px" width="705px"/>')

                   <%} 
            }%>

             $('#'+chartType+'_accordion').accordion();
             $('#td_'+chartType+'_result div div').css('height','440px');




 }





 function initGridColumnList(col_names) {
    var list = col_names.split('|');
    columnList= new Array();
    var obj;


    for (i = 0; i < list.length; i++) {
        obj=new Object();
        obj["sName"]=list[i];
        obj["bSearchable"]=true;
        obj["bSortable"]=true;
        columnList[i]=obj;
    }


    //reset grid headers
    $("#grid_view").empty();

    var header="<thead><tr>";

    for (i = 0; i < list.length; i++) 
         header=header+'<th'+(i==0?' style="min-width:60px"':'')+'>'+columnList[i].sName+'</th>';


    header=header+'</tr></thead>';
    $("#grid_view").append(header);
    $("#grid_view").append('<tbody></tbody>');
    $('#grid_view').css('width','90%'); 



 }


 var barchartcount=0;
 var piechartcount=0;

 //Event handler when All images loaded
function onLoadComplete(obj) {
    var reportCount=<%=reportNameList.Count() %>;

    if(obj=='pie'){

        piechartcount=piechartcount+1;
        if(piechartcount==reportCount){
            piechartcount=0;
            $('#span_pie_bg').css('display','none');
            $('#span_pie_wait').css('display','none');
            $('#span_pie_result').css('display','block');
        }

    }else if(obj=='bar'){
        barchartcount=barchartcount+1;
        if(barchartcount==reportCount){
            barchartcount=0;
            $('#span_bar_bg').css('display','none');
            $('#span_bar_wait').css('display','none');
            $('#span_bar_result').css('display','block');
        }
    }
}


function getReportData() {

       //Enable wait Icon & disable others
       $('#span_bar_bg').css('display','none');
       $('#span_bar_wait').css('display','block');
       $('#span_bar_result').css('display','none');
       $('#span_pie_bg').css('display','none');
       $('#span_pie_wait').css('display','block');
       $('#span_pie_result').css('display','none');


       var report='<%=Request.QueryString["data"]%>';
       var subreport='<%=Request.QueryString["name"]%>';


        if( report.toLowerCase()=='ctss' )
        {
         alert('Report is temporarily Un-available');
         return;
        }

        if ($("#from_date").val() == "" || $("#to_date").val() == "") {
            alert("Invalid Date Range !!!");
            return;
        }


        $("#span_grid_bg").css('display','none');
        $("#span_grid_view").css('display', 'block');



           // "sScrollX": "100%",
           // "sScrollXInner": "101%",
           // "bScrollCollapse": true,


        $('#grid_view').dataTable({
            "sScrollX": "100%",
            "bAutoWidth": true,
            "bServerSide": false,
            "sAjaxSource": "fetchGridReport?&from_date=" + $("#from_date").val() + "&to_date=" + $("#to_date").val() + "&report="+report+"&subreport="+subreport,
            "bProcessing": true,
            "bRetrieve": false,
            "bDestroy": true,
            "iDisplayLength": 17,
            "aoColumns": columnList
        });

         //$("#tabs-grid").css('width','90%');
         $('#grid_view').dataTable().fnAdjustColumnSizing();




        //Request for reports 
         <%
           foreach (string title in reportNameList) { 
           string reporttitle=title.Split('|')[0];
           string displayformat= title.Split('|')[1];

         %>
           $('#span_bar_result img[alt="<%=reporttitle%>"]').attr('src','/fetchChartReport?chartType=<%=System.Web.UI.DataVisualization.Charting.SeriesChartType.Bar %>&from_date=' + $("#from_date").val() + '&to_date=' + $("#to_date").val() +  '&report='+report+'&subreport='+subreport+'&reporttitle=<%=reporttitle %>&displayformat=<%=displayformat %>&filterParamList=no');
           $('#span_pie_result img[alt="<%=reporttitle%>"]').attr('src','/fetchChartReport?chartType=<%=System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie %>&from_date=' + $("#from_date").val() + '&to_date=' + $("#to_date").val() +  '&report='+report+'&subreport='+subreport+'&reporttitle=<%=reporttitle %>&displayformat=<%=displayformat %>&filterParamList=no');
        <%} %>


        //register call back functionality invoked when result image response complete
         $('img[id^="img_barchart_result"]').bind('load',function(){
             onLoadComplete('bar');

         });

         $('img[id^="img_piechart_result"]').bind('load',function(){
              onLoadComplete('pie');
         });



    }



</script>
<table style="margin: 5px; height: 100%; width: 100%;">
    <tr style="height: 20%; width: 97%; font-size: large;">
        <td align="left">
            <table style="margin: 5px;">
                <tr>
                    <td style="padding-right: 5px;">
                        <p>
                            <label style="font-family: Verdana; font-size: small; font-weight: bold">
                                Date Range:
                            </label>
                            <input type="text" id="from_date" style="width: 70px" /></p>
                    </td>
                    <td style="padding-right: 5px;">
                        <strong>- </strong>
                    </td>
                    <td style="padding-right: 20px;">
                        <p>
                            <input type="text" id="to_date" style="width: 70px" /></p>
                    </td>
                    <td style="padding-right: 20px">
                        <div>
                            <label style="font-family: Verdana; font-size: small; font-weight: bold">
                                Report By :
                            </label>
                            <select id="reportby" onchange="changeOnReportBy()" disabled="disabled">
                                <option value="daily">Daily</option>
                                <option value="weekly">Weekly</option>
                                <option value="monthly">Monthly</option>
                                <option value="yearly">Yearly</option>
                            </select>
                        </div>
                    </td>
                    <td>
                        <input type="button" value="GO" onclick="getReportData();" />
                    </td>
                </tr>
            </table>
        </td>
    </tr>
    <tr style="height: 80%; width: 97%; position: relative">
        <td align="left">
            <div id="tabs" style="height: 100%; width: 96%;">
                <span id="span_chart" style="height: 100%; width: 95%; display: block">
                    <ul style="width: 95%;">
                        <li><a href="#tabs-grid">Grid</a></li>
                        <li><a href="#tabs-bar">Bar</a></li>
                        <li><a href="#tabs-pie">Pie</a></li>
                    </ul>
                    <div id="tabs-grid" style="width: 95%;">
                        <span id="span_grid_bg" style="display: block; padding-top: 10px">
                            <p>
                                <img src='' style="height: 50%; width: 90%;" alt="" />
                            </p>
                        </span><span id="span_grid_view" style="display: none;">
                            <table id="grid_view" class="display" style="overflow-x: scroll; width: 90%;">
                            </table>
                        </span>
                    </div>
                    <div id="tabs-bar">
                        <span id="span_bar_bg" style="display: block">
                            <p>
                                <img src='' style="height: 50%; width: 90%;" alt="" />
                            </p>
                        </span><span id="span_bar_wait" style="display: none">
                            <p>
                                <img src='/content/dashboard/images/wait.gif' style="height: 80px; width: 200px;"
                                    alt="" />
                            </p>
                        </span><span id="span_bar_result" style="display: none">
                            <table>
                                <tr>
                                    <%if (!ViewData["filter"].Equals("none"))
                                      {%>
                                    <td style="vertical-align: top; padding-top: 30px">
                                        <a href="#" id="BarChart_filter">
                                            <img id="img_barchart_filter" src="/content/dashboard/images/filter_icon.png" style="width: 40px;
                                                height: 50px" title="Filter" alt=""></img>
                                        </a>
                                    </td>
                                    <%} %>
                                    <td style="vertical-align: top" id="td_barchart_result">
                                    </td>
                                </tr>
                            </table>
                        </span>
                    </div>
                    <div id="tabs-pie">
                        <span id="span_pie_bg" style="display: block">
                            <p>
                                <img src='' style="height: 50%; width: 90%;" alt="" />
                            </p>
                        </span><span id="span_pie_wait" style="display: none">
                            <p>
                                <img src='/content/dashboard/images/wait.gif' style="height: 80px; width: 200px;"
                                    alt="" />
                            </p>
                        </span><span id="span_pie_result" style="display: none">
                            <table>
                                <tr>
                                    <%if (!ViewData["filter"].Equals("none"))
                                      {%>
                                    <td style="vertical-align: top; padding-top: 30px">
                                        <a href="#" id="PieChart_filter">
                                            <img id="img_piechart_filter" src="/content/dashboard/images/filter_icon.png" style="width: 40px;
                                                height: 50px" title="Filter" alt=""></img>
                                        </a>
                                    </td>
                                    <%} %>
                                    <td style="vertical-align: top;" id="td_piechart_result">
                                    </td>
                                </tr>
                            </table>
                        </span>
                    </div>
                </span>
            </div>
        </td>
    </tr>
</table>
<!-- Advance Componant Block -->
<span id="span_bar_chart" style="display: none"></span><span id="span_pie_chart"
    style="display: none"></span>
<!-- Advance Componant Block -->
<%if (!ViewData["filter"].Equals("none"))
  {
      //Dynamic View Componants based on ViewData["filter"] argument
      Html.RenderPartial(ViewData["filter"].ToString(), "BarChart");
      Html.RenderPartial(ViewData["filter"].ToString(), "PieChart");
  }
%>

提前致谢

0 个答案:

没有答案