我正在asp.net
網站上工作,我有Imagebutton
在點擊事件時調用c#
函數。我想阻止這個圖像按鈕創建一個postBack。防止圖像按鈕做PostBack
我曾嘗試加入
OnClientClick="return false;"
和UseSubmitBehavior="false"
但它並沒有爲我工作。
您有解決方案嗎?
席力圖召通過客戶端爲下列功能的服務器功能,但似乎有什麼不對我的代碼:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20130526/json2.min.js"></script>
<script type="text/javascript">
$('#excelImageButton').click(function funcall() {
$.ajax(
{
type: "POST",
url: "BerthOccupancyForm.aspx/GridToExcel",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
});
return false;
});
</script>
這是後面的代碼:
[WebMethod()]
public static void GridToExcel(GridView berthGridView, GridView recap)
{
if (berthGridView.Rows.Count > 0)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=BerthOccupancy.xls");
HttpContext.Current.Response.ContentType = "text/csv";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
berthGridView.RenderControl(htw);
if (RT == "Year To Date")
{
foreach (GridView gv in Code)
{
gv.RenderControl(htw);
}
}
else
{
recap.RenderControl(htw);
}
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
謝謝
你在'page_load'上寫了那個按鈕在服務器端嗎?同時顯示** ImageButton的完整aspx ** – BNN
如果是webforms,則必須在服務器側控件上處理回發。其他方式你不能調用OnClick函數。 但你仍然總是可以切換到AJAX或只是將ImageButton替換爲簡單圖像並調用調用Web方法的JS代碼(這基本上是另一種執行類AJAX操作的方法) – Lorin
@coder我確實寫了它頁面加載,但它不適合我。 –