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 をクリックしても何も起こりません

4

3 に答える 3

0

この行は意味がありません: var b = HidColumn();

関数 HidColumn は何も返しません。

于 2013-02-14T11:36:12.940 に答える
0

私が言ったように、私はスティーブの答えに同意するので、関数 HidColumn を変更して true または false を返す必要があります。もう 1 点、clicked() から 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 に設定したため、コントロールはレンダリングされません。したがって、そのコントロールには HTML がないため、javascript で Element を取得することはできません。コントロールを非表示にしたい場合は、JavaScriptを使用してください:-

<asp:somecontrol id="ctrl" style="display:none" />
于 2013-02-14T11:44:28.540 に答える