【发布时间】:2017-08-18 04:34:51
【问题描述】:
网格视图下方的打印按钮在新选项卡中打开打印页面。
使用这个 java 脚本代码。
Java 脚本
<script type="text/javascript">
function SetTarget() {
document.forms[0].target = "_blank";
}
</script>
打印按钮也将OrderStatus从“待处理”更新为“已接收”
问题是当我按下网格数据中的打印按钮时,我必须重新加载页面才能看到 OrderStatus 已更改为更新后的值。
代码后面
protected void gridOrders_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
string commandName = e.CommandName.ToString().Trim();
GridViewRow row = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
GridViewRow gvRow = (GridViewRow)((Control)e.CommandSource).NamingContainer;
Int32 rowind = gvRow.RowIndex;
string orderid = row.Cells[1].Text;
switch (commandName)
{
case "Print":
if (r.CheckReceiving(orderid))
{
Session["orderid"] = orderid;
Server.Transfer("OrderPrint.aspx");
}
else
{
string msg = r.AddReceiving(r.GetNextReceivingID(), orderid, DateTime.Now.ToString());
if (msg == "true")
{
o.UpdateOrderStatus(orderid, "Received");
gridOrders.DataSource = o.ManageOrders(UtilityClass.ReadFromCookie("login", "OutletD", Request));
gridOrders.DataBind();
Session["orderid"] = orderid;
Server.Transfer("OrderPrint.aspx");
}
else
{
divreceivedfalse.Visible = true;
}
}
break;
default: break;
}
}
catch (Exception ex)
{
Response.Write("Error: " + ex.Message);
}
}
网格位于更新面板中
<asp:GridView ID="gridOrders" OnRowDataBound="gridOrders_RowDataBound" OnRowCommand="gridOrders_RowCommand" runat="server" CssClass="table table-bordered text-nowrap" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Print" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="SetTarget('_blank');" CommandName="Print" CausesValidation="False" CssClass="btn btn-primary btn-xs" Text=""><i class="glyphicon glyphicon-print"></i></asp:LinkButton>
</ItemTemplate>
<ControlStyle CssClass="btn btn-default " />
</asp:TemplateField>
<asp:BoundField DataField="OrderID" HeaderText="Order #" SortExpression="OrderID" />
<asp:BoundField DataField="OrderDate" DataFormatString="{0:dd/MMM/yyyy hh:mm tt}" HeaderText="Order Date" SortExpression="OrderDate" />
<asp:TemplateField HeaderText="Status" SortExpression="Status">
<ItemTemplate>
<asp:Label ID="lblStatus" CssClass="label label-primary" runat="server" Text='<%# Bind("OrderStatus") %>'> CausesValidation="False" Text=''></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
【问题讨论】:
标签: c# asp.net ajax gridview asp.net-ajax