簡體   English   中英

調用javascript函數以從后面的代碼打印表單

[英]calling javascript function to print form from code behind

我想調用一個函數javascript函數來從打印按鈕click.hint后面的代碼中打印表單。我先在表格上隱藏了網格視圖的一列,然后再打印它。

protected void btnPrint_Click(object sender, EventArgs e)
{
    foreach (GridViewRow row in grdTransaction.Rows)
    {

        if (UType == "A")
        {
            grdTransaction.Columns[7].Visible = false;
        }
        else
        {
            grdTransaction.Columns[3].ItemStyle.Width = 100;
            grdTransaction.Columns[5].Visible = false;
        }
    }
}

我已經用過

1) ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", 
  "<script type='text/javascript'>clicked('printablediv');</script>", true);

2) ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script",
   "clicked('printablediv');", true);

3) btnPrint.Attributea.Add("onclick","clicked('printablediv');");

4) btnPrint.Attributea.Add("onclick","return clicked('printablediv');");

以上所有選項均無效,但在OnClientClick事件上有效。.請幫幫我。 提前致謝。

如果你看一下例子在MSDN上看到 ,那么你會發現,你必須包括整個腳本塊包括標簽。

此外,OnClientClick事件聽起來確實像正確的事件。 那么,如果行得通,那是什么問題呢?

在前兩個選項中:

您嘗試過,您只是嘗試調用一個名為clicked(args)的javascript方法,因此實際上並未將其綁定到任何按鈕單擊。 當您將最后一個參數傳遞為true時,不必將腳本包裝在<script>標記中。 頁面加載后,它應該可以正常工作。

現在為您的最后兩個選項:

看看發生了什么,當您單擊該按鈕時,它會回發,因此您不會看到javaSript代碼的效果,因為整個頁面都已重新加載。 您需要防止PostBack。

嘗試這個:

btnPrint.Attributes.Add("onclick","clicked('printablediv'); return false");

確保您return false; 從您單擊的方法。

也要注意分號,即; ,當您執行control.Attributes.Add時,它已經加上了分號; 你不自己做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM