[英]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.