~~~今天开始记录一下开发中遇到的一些小问题~~~
----------------------------------------------------------------------------
主要功能说明:前台打印按钮(btnPrint)点击后后台方法进行更新数据,并显示相关打印预览页面。
起初使用一个隐藏按钮(btnHidePrint),当点击打印按钮后调用btnHidePrint的OnClick事件进行后台数据更新。
问题:后台方法可以正常更新数据,但更新后前端页面会刷新。
解决:使用ASPxCallback,当btnPrint点击时,调用ASPxCallback的OnCallback方法进行数据更新。
代码:
<dxcb:ASPxCallback ID="callBackPrint" ClientInstanceName="callBackPrint" runat="server"
OnCallback="PrintCallback">
</dxcb:ASPxCallback>
<dxe:ASPxButton ID="btnPrint" runat="server" Text="<%$ Resources:PPS, btnPrint %>"
UseSubmitBehavior="false" Width="70" ToolTip="ALT+P" AccessKey="P">
<Image Url="~/images/printer.png" />
<ClientSideEvents Click="function(s,e){e.processOnServer=false;Print();}" />
</dxe:ASPxButton>
function Print() {
//更新打印状态
callBackPrint.PerformCallback();
//显示打印预览页面
}
/// <summary>
/// 更改打印状态
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
protected void PrintCallback(object source, DevExpress.Web.ASPxCallback.CallbackEventArgs e)
{
List<object> keyIds = grid.GetSelectedFieldValues(grid.KeyFieldName);//获取当前列表选中的值
if (keyIds.Count > 0)
{
//更新数据
}
}