2013-02-14 47 views
0
function printform() { 
     var printContent = document.getElementById("<%= PrintPanelID.ClientID %>"); 

     var windowUrl = "about:blank"; 
     var uniqueName = new Date(); 
     var windowName = "Print" + uniqueName.getTime(); 
     var printWindow = window.open(windowUrl, windowName, "left=50000,top=50000,width=0,height=0"); 
     printWindow.document.write(printContent.innerHTML); 
     printWindow.document.close(); 
     printWindow.focus(); 
     printWindow.print(); 
     printWindow.close(); 
    } 

    function HidColumn() { 

     // col_num = document.getElementById("Button").value; 
     rows = document.getElementById("<%= GV1.ClientID %>").rows; 
     for (i = 0; i < rows.length; i++) { 
      rows[i].cells[8].style.display = "none"; 
     } 

     for (j = 0; j < rows.length; j++) { 
      rows[j].cells[9].style.display = "none"; 
     } 
    } 

    // change logic to suit taste 
    function clicked() { 
     var b = HidColumn(); 
     if (b) 
      printform() 
     return b; 
    } 


    <asp:ImageButton ID="ImageButton2" runat="server" ImageAlign="Right" ImageUrl="images/printer.jpg" 
        Style="margin-left: 5px; margin-right: 15px" OnClick="ImageButton2_Click" Width="36px" 
        OnClientClick="return clicked()" Visible="false" /> 

但是什么也没有发生,当我点击的ImageButton隐藏GridView控件的两列,而在打印Asp.net

+0

我同意史蒂夫回答,你应该修改你的函数HidColumn()返回true或false .. – Pranav 2013-02-14 11:38:28

回答

0

此行没有任何意义:var b = HidColumn();

功能HidColumn没有按” t返回任何东西。

0

正如我所说,我同意史蒂夫的答案,你应该修改你的函数HidColumn返回true或false。 还有一点我想提到,如果你从点击返回false()然后postback将不会发生,否则它会在服务器上调用ImageButton2_Click事件。

function HidColumn() { 

     // col_num = document.getElementById("Button").value; 
     rows = document.getElementById("<%= GV1.ClientID %>").rows; 
     for (i = 0; i < rows.length; i++) { 
      rows[i].cells[8].style.display = "none"; 
     } 

     for (j = 0; j < rows.length; j++) { 
      rows[j].cells[9].style.display = "none"; 
     } 
     if(someCondition)return true; 
     else return false; 
    } 

更新: - 你控制可视性设置为False,因此控制将不会被渲染。 因此,您无法在JavaScript中获取元素,因为该控件将没有HTML。 如果你想隐藏的控制只是用javascript: -

<asp:somecontrol id="ctrl" style="display:none" /> 
0

只是把你隐藏列代码在这样的打印功能:

function PrintPage() { 

     rows = document.getElementById("<%= Gv1.ClientID %>").rows; 
     for (i = 0; i < rows.length; i++) { 
      rows[i].cells[8].style.display = "none"; 
      rows[i].cells[9].style.display = "none"; 
     } 
     var printContent = document.getElementById('<%= pnlDtls.ClientID %>'); 
     var printWindow = window.open("All Records", "Print Panel", 'left=50000,top=50000,width=0,height=0'); 
     printWindow.document.write(printContent.innerHTML); 
     printWindow.document.close(); 
     printWindow.focus(); 
     printWindow.print(); 
    }