2013-08-22 90 views
2

我想調用一個函數javascript函數來打印表單,代碼後面的打印按鈕click.I m首先隱藏我的gridview的一列,然後我想打印它。調用javascript函數從代碼後面打印表格

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事件它works..Please幫助我。 在此先感謝。

回答

0

如果你看一下msdn see上的例子,那麼你會注意到你必須包含一個包含標籤的整個腳本塊。

此外,OnClientClick事件聽起來像是正確的事件。所以,如果這有什麼問題?

0

在第一兩種選擇:

,你試過你只是試圖調用名爲clicked(args) JavaScript方法,所以你實際上並沒有將它綁定到任何按鍵點擊。當您將最後一個參數作爲true傳遞時,您不必在<script>標記中包裝腳本。它應該在頁面加載後立即工作。

現在爲你的最後兩個選項:

看看會發生什麼,當你按一下按鈕,它會回傳,所以你看不到你的javaSript代碼的效果,是因爲整個頁面重新加載。你需要防止回發。

試試這個:

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

確保,你return false;從你點擊的方法。

此外,請注意分號,即;,當您執行control.Attributes.Add時,它已經添加了分號;你不這樣做你的自我

相關問題