2017-03-25 4 views
1

아래의 그리드보기에있는 인쇄 버튼을 누르면 새 탭에 페이지가 인쇄됩니다.응답 리디렉션을 사용하여 그리드보기 데이터 새로 고침

이 자바 스크립트 코드를 사용하십시오.

자바 스크립트 또한

<script type="text/javascript"> 
    function SetTarget() { 
     document.forms[0].target = "_blank"; 
    }  
</script> 

인쇄 버튼 업데이트 '보류'내가 그리드 데이터의 인쇄 버튼이 난을 새로 고쳐지지 않습니다 누를 때 문제가

'수신'에에서 OrderStatusOrderStatus이 업데이트 된 값으로 변경되었는지 확인하려면 페이지를 다시로드해야합니다.

뒤에-코드

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); 

    } 
} 

그리드 업데이트 할 데이터의 변화 있다는 것을 이해할 수 없다 귀하의 경우 업데이트 패널에서 내부 UpdatePanel

<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> 

답변

0

인가 . 따라서 수동으로 업데이트해야합니다. 이 같은 적절한 위치에

UpdatePanelName.Update(); 

를 호출하여이 작업을 수행 할 수 있습니다 : 당신이 당신의 자신의 업데이트 패널 이름으로 UpdatePanelName을 변경해야합니다

if (msg == "true") 
{ 
    o.UpdateOrderStatus(orderid, "Received"); 
    gridOrders.DataSource = o.ManageOrders(UtilityClass.ReadFromCookie("login", "OutletD", Request)); 
    gridOrders.DataBind(); 
    UpdatePanelName.Update(); 
    Session["orderid"] = orderid; 
    Server.Transfer("OrderPrint.aspx"); 
} 

공지 사항.

+0

여전히 문제가 있습니다 – Ayman

+0

업데이트하지 않는 것은 'OrderStatus'에 바인딩 된 라벨입니까? – Emad

+0

네, 맞습니다 – Ayman