How to load Panel in TabPanel after click Tab extjs? - ext.net

When page load, all Panel in TabPanel autoload. I don't want it. How to load Panel after click to this Tab?
<ext:Panel runat="server" ID="pnlQLDB" Border="false" Layout="fit">
<Items>
<ext:TabPanel ID="TabDB" Border="false" runat="server">
<Items>
<ext:Panel ID="panTest" Border="false" runat="server">
<Content>
<uc:NHQH ID="NHQH" runat="server" />
</Content>
</ext:Panel>
<ext:Panel ID="panTest1" Border="false" runat="server">
<Content>
<uc:NSQHCLY ID="NSQHCLY" runat="server" />
</Content>
</ext:Panel>
<ext:Panel ID="panTest2" Border="false" runat="server">
<Content>
<uc:NSQTLS ID="NSQTLS" runat="server" />
</Content>
</ext:Panel>
</Items>
</ext:TabPanel>
</Items>
</ext:Panel>

For this you can write load functionality on activate event of Ext.tab.Panel or Ext.tab.Tab.

Related

INTran Not showing LotNumberNbr

Good day
I have made a new Grid to show data from INTran(PX.Objects.IN.INTran)
I see there is a LotSerialNbr in the INTran DAC. But when I make a new PXSelect I don't see it in the "ADD DATA FIELDS" on my page.
I add the Lot/Serial Nbr(LotSerialNbr) when loading stock on the Inventory Receipts.
I have also checked INRegister and INTranSplit both not show the Lot Serial Nbr?
using System;
using PX.Data;
using PX.Objects.IN;
using PX.Objects.SO;
namespace Test
{
public class StockTransfer : PXGraph<StockTransfer>
{
public PXSave<MasterTable> Save;
public PXCancel<MasterTable> Cancel;
public PXFilter<MasterTable > MasterView;
public PXFilter<INTran> DetailsView;
[Serializable]
public class MasterTable : IBqlTable
{
}
[Serializable]
public class DetailsTable : IBqlTable
{
}
public PXSelect<INRegister> Register;
public PXSelect<INTran> INTran;
public PXSelect<INTranSplit > INTranSplit ;
}
}
How can I get the Lot Serial number to show on the grid?
edit here is the ASPX:
<%# Page Language="C#" MasterPageFile="~/MasterPages/FormDetail.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="ABIT1111.aspx.cs" Inherits="Page_ABIT1111" Title="Untitled Page" %>
<%# MasterType VirtualPath="~/MasterPages/FormDetail.master" %>
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%"
TypeName="JVDLocationTransfer.TransferGrap"
PrimaryView="MasterView"
>
<CallbackCommands>
</CallbackCommands>
</px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" DataMember="MasterView" Width="100%" Height="100px" AllowAutoHide="false">
<Template>
<px:PXLayoutRule ID="PXLayoutRule1" runat="server" StartRow="True"></px:PXLayoutRule>
<px:PXTextEdit runat="server" ID="CstPXTextEdit1" DataField="UsrFROMLocation" />
<px:PXTextEdit runat="server" ID="CstPXTextEdit2" DataField="UsrInventoryID" />
<px:PXTextEdit runat="server" ID="CstPXTextEdit3" DataField="UsrInventoryItemDescription" />
<px:PXTextEdit runat="server" ID="CstPXTextEdit4" DataField="UsrQty" />
<px:PXTextEdit runat="server" ID="CstPXTextEdit5" DataField="UsrReasonCode" />
<px:PXTextEdit runat="server" ID="CstPXTextEdit6" DataField="UsrSKU" />
<px:PXTextEdit runat="server" ID="CstPXTextEdit7" DataField="UsrUOM" /></Template>
</px:PXFormView>
</asp:Content>
<asp:Content ID="cont3" ContentPlaceHolderID="phG" Runat="Server">
<px:PXGrid ID="grid" runat="server" DataSourceID="ds" Width="100%" Height="150px" SkinID="Details" AllowAutoHide="false">
<Levels>
<px:PXGridLevel DataMember="INTran">
<Columns>
<px:PXGridColumn DataField="InventoryID" Width="70" />
<px:PXGridColumn DataField="LotSerialNbr" ></px:PXGridColumn></Columns>
</px:PXGridLevel>
</Levels>
<AutoSize Container="Window" Enabled="True" MinHeight="150" />
<ActionBar >
</ActionBar>
</px:PXGrid>
</asp:Content>
The screen graph JVDLocationTransfer.TransferGrap declared in ASPX doesn't match the target StockTransfer graph. Also inexistent columns are declared on dataview like MasterView which points to empty DACs like MasterTable. Wizards functionality such as Add Data Field won't work properly in that context.

How to conditionally hide PXPanel inside an Acumatica screen?

I have the following use case:
Acumatica dropdown, which can have 2 or so values.
e.g.:
-If user selects option a, I need to show PXPanel(ID="panel1")
-If user selects option b, I need to show PXPanel(ID="panel2")
Those PXPanels are inside in one PXFormView, so they have one DataMember Like this :
<px:PXFormView ID="form" runat="server" DataSourceID="ds" DataMember="Waybills">
<px:PXPanel ID="panel1" ..
<px:PXPanel ID="panel2" ..
</px:PXFormView>
Is it possible to conditionally show/hide PXPanels?
As RuslanDev said I can achieve the same effect with PXLayoutRule(GroupCaption), but in that case I can't set caption to 100%, it's equal the first column's width.
With PXPanel :
apsx :
<px:PXPanel ID="panel3" runat="server" Caption="Buyer (Receiver)" RenderStyle="Fieldset" AlreadyLocalized="False" DataMember="" >
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True" ColumnWidth="XM" />
<px:PXSegmentMask CommitChanges="True" ID="edCustomerID" runat="server" DataField="CustomerID" DataSourceID="ds" />
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True" ColumnWidth="XM" />
<px:PXTextEdit ID="edRecipientTaxRegistrationID" runat="server" DataField="RecipientTaxRegistrationID" Enabled="False" CommitChanges="True" AlreadyLocalized="False" DefaultLocale="" />
<px:PXCheckBox ID="edRecipientIsForeignCitizen" runat="server" DataField="RecipientIsForeignCitizen" AlreadyLocalized="False" Enabled="false"/>
<px:PXLayoutRule runat="server" StartColumn="True" ColumnWidth="XM" />
<px:PXTextEdit ID="edRecipientName" runat="server" DataField="RecipientName" Enabled="False" AlreadyLocalized="False" DefaultLocale="" />
<px:PXLayoutRule runat="server" StartColumn="True" ColumnWidth="XM" />
<px:PXTextEdit ID="edRecipientDestinationAddress" runat="server" DataField="RecipientDestinationAddress" CommitChanges="True" AlreadyLocalized="False" DefaultLocale="" />
</px:PXPanel>
With PXLayoutRule :
apsx :
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True" GroupCaption="Buyer (Receiver)" StartGroup="true" ColumnSpan="3"/>
<px:PXLayoutRule runat="server" StartColumn="True" ColumnWidth="XM" />
<px:PXSegmentMask CommitChanges="True" ID="edCustomerID" runat="server" DataField="CustomerID" DataSourceID="ds" />
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True" ColumnWidth="XM" />
<px:PXTextEdit ID="edRecipientTaxRegistrationID" runat="server" DataField="RecipientTaxRegistrationID" Enabled="False" CommitChanges="True" AlreadyLocalized="False" DefaultLocale="" />
<px:PXCheckBox ID="edRecipientIsForeignCitizen" runat="server" DataField="RecipientIsForeignCitizen" AlreadyLocalized="False" Enabled="false"/>
<px:PXLayoutRule runat="server" StartColumn="True" ColumnWidth="XM" />
<px:PXTextEdit ID="edRecipientName" runat="server" DataField="RecipientName" Enabled="False" AlreadyLocalized="False" DefaultLocale="" />
<px:PXLayoutRule runat="server" StartColumn="True" ColumnWidth="XM" />
<px:PXTextEdit ID="edRecipientDestinationAddress" runat="server" DataField="RecipientDestinationAddress" CommitChanges="True" AlreadyLocalized="False" DefaultLocale="" />
There is no option to hide entire PXPanel from business logic, except conditionally setting Visible to true or false for each input control placed within a PXPanel:
protected virtual void ARFinCharge_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
{
ARFinCharge fin = e.Row as ARFinCharge;
if (fin == null) return;
PXUIFieldAttribute.SetVisible<ARFinCharge.fixedAmount>(cache, fin, fin.ChargingMethod == OverdueChargingMethod.FixedAmount);
PXUIFieldAttribute.SetVisible<ARFinCharge.lineThreshold>(cache, fin, fin.ChargingMethod == OverdueChargingMethod.PercentWithThreshold);
PXUIFieldAttribute.SetVisible<ARFinCharge.minFinChargeAmount>(cache, fin, fin.ChargingMethod == OverdueChargingMethod.PercentWithMinAmount);
}
For the PXLayoutRule approach, please use Aspx layout as below (the Customer selector has to span across the 3 columns underneath it):
<px:PXLayoutRule runat="server" StartRow="True" StartGroup="true" GroupCaption="Buyer (Receiver)" />
<px:PXSegmentMask CommitChanges="True" ID="edCustomerID" runat="server" DataField="CustomerID" />
<px:PXLayoutRule runat="server" Merge="True" />
<px:PXTextEdit ID="edRecipientTaxRegistrationID" Size="M" runat="server" DataField="RecipientTaxRegistrationID" Enabled="False" CommitChanges="True" AlreadyLocalized="False" DefaultLocale="" />
<px:PXTextEdit ID="edRecipientName" runat="server" Size="M" DataField="RecipientName" Enabled="False" AlreadyLocalized="False" DefaultLocale="" />
<px:PXTextEdit ID="edRecipientDestinationAddress" Size="M" runat="server" DataField="RecipientDestinationAddress" CommitChanges="True" AlreadyLocalized="False" DefaultLocale="" />
<px:PXLayoutRule runat="server" Merge="False" />
<px:PXCheckBox ID="edRecipientIsForeignCitizen" runat="server" DataField="RecipientIsForeignCitizen" AlreadyLocalized="False" Enabled="false"/>
<px:PXLayoutRule runat="server" EndGroup="true" />
Using PXFormView instead of PXPanel solved all the problems.

Filter issue in Ext.Net grid panels

In Ext.Net while using Filters item under ext:GridFilters
I am getting Filters is not supported under ext:GridFilters. Please suggest how to resolve this issue
Aspx Page
<%# Page Language="C#" %>
<%# Import Namespace="System.Collections.ObjectModel" %>
<%# Import Namespace="System.Collections.Generic" %>
<%# Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
this.Store1.DataSource = FiltersTestData.Data;
this.Store1.DataBind();
}
}
protected void SetFilter(object sender, DirectEventArgs e)
{
StringFilter sf = (StringFilter)GridFilters1.Filters[1];
sf.SetValue("xyz");
sf.SetActive(true);
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>GridPanel with Local Filtering, Sorting and Paging - Ext.NET Examples</title>
<link href="../../../../resources/css/examples.css" rel="stylesheet" type="text/css" />
</head>
<body>
<ext:ResourceManager runat="server" DirectEventUrl="default.aspx" />
<h1>GridPanel with Local Filtering, Sorting and Paging</h1>
<p>Please see column header menu for apllying filters</p>
<ext:Store runat="server" ID="Store1">
<Reader>
<ext:JsonReader IDProperty="StudentNo">
<Fields>
<ext:RecordField Name="StudentNo" Type="Int" />
<ext:RecordField Name="StudentName" Type="String" />
<ext:RecordField Name="StudentSurname" Type="String" />
</Fields>
</ext:JsonReader>
</Reader>
<SortInfo Field="StudentSurname" Direction="ASC" />
</ext:Store>
<ext:Window
ID="Window1"
runat="server"
Width="700"
Height="400"
Closable="false"
Collapsible="true"
Title="Example"
Maximizable="true"
Layout="Fit">
<Items>
<ext:GridPanel runat="server" ID="GridPanel1" Border="false" StoreID="Store1">
<ColumnModel runat="server">
<Columns>
<ext:Column Header="StudentNo" DataIndex="StudentNo" />
<ext:Column Header="StudentName" DataIndex="StudentName" />
<ext:Column Header="StudentSurname" DataIndex="StudentSurname" />
</Columns>
</ColumnModel>
<LoadMask ShowMask="true" />
<Plugins>
<ext:GridFilters runat="server" ID="GridFilters1" Local="true">
<Filters>
<ext:NumericFilter DataIndex="StudentNo" />
<ext:StringFilter DataIndex="StudentName" />
<ext:StringFilter DataIndex="StudentSurname" />
</Filters>
</ext:GridFilters>
</Plugins>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBar1" runat="server" PageSize="10">
<Items>
<ext:ToolbarSeparator runat="server" />
<ext:Button runat="server" Text="Find 'xyz'">
<DirectEvents>
<Click OnEvent="SetFilter" />
</DirectEvents>
</ext:Button>
</Items>
</ext:PagingToolbar>
</BottomBar>
</ext:GridPanel>
</Items>
</ext:Window>
</body>
</html>
cs page:
using System;
using System.Collections.Generic;
public class FiltersTestData
{
public static List<object> Data
{
get
{
var StudentInfo = new List<object>
{
new
{
StudentNo = 1,
StudentName = "xy",
StudentSurname = "xyz"
},
new
{
StudentNo = 2,
StudentName = "AB",
StudentSurname = "ABC"
},
new
{
StudentNo = 3,
StudentName = "pq",
StudentSurname = "pqr"
}
};
return StudentInfo;
}
}
}
please try this code.
this solution works fine for me:
<ext:GridPanel ID="GridPanelDatiAssociati" runat="server" Title="Dati associati" Stateful="true">
<Store>
<ext:Store ID="StoreDatiAssociati" runat="server" PageSize="6">
<Model>
<ext:Model ID="ModelDatiAssociati" runat="server" IDProperty="ID">
<Fields>
<ext:ModelField Name="ID" />
<ext:ModelField Name="PARAMETRO" />
<ext:ModelField Name="DESCRIZIONE" />
<ext:ModelField Name="UNITA" />
<ext:ModelField Name="VALORE" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModelDatiAssociati" runat="server">
<Columns>
<ext:Column ID="ColumnID_DATI_ASSOCIATI" runat="server" Text="ID" DataIndex="ID" Width="100" Hidden = "true" >
</ext:Column>
<ext:Column ID="ColumnPARAMETRO" runat="server" Width="100" Text="Parametro" DataIndex="PARAMETRO">
<Filter>
<ext:StringFilter />
</Filter>
</ext:Column>
<ext:Column ID="ColumnUNITA" runat="server" Width="170" Text="Unità" DataIndex="UNITA">
<Filter>
<ext:DateFilter>
<DatePickerOptions runat="server" TodayText="Now" />
</ext:DateFilter>
</Filter>
</ext:Column>
<ext:Column ID="ColumnVALORE" runat="server" Width="170" Text="Valore" DataIndex="VALORE">
<Filter>
<ext:DateFilter>
<DatePickerOptions runat="server" TodayText="Now" />
</ext:DateFilter>
</Filter>
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:GridFilters ID="GridFiltersDatiAssociati" runat="server">
</ext:GridFilters>
</Plugins>
</ext:GridPanel>

Create preview pane for grid

I want to create a preview pane below my custom grid on a tab, same as in other places it shows a preview below grid when I select any row.
I am using
PXGridWithPreview
And included
PreviewPanelTemplate
But, it is giving me below error
View AcumaticaActivities$Preview doesn't exist
I am not sure if I need to do any settings. Any suggestions?
Try to add PXPreviewAttribute to the selected view.
[PXPreview(typeof(TPrimaryView), typeof(TDacForPreview))]
public PXSelect<TPrimaryView,... AcumaticaActivities;
Here is the sample:
Graph code
public class SOPreview : PXGraph<SOPreview>
{
public PXCancel<SOOrder> Cancel;
[PXFilterable]
[PXPreview(typeof(SOOrder))]
public PXSelectJoin<SOOrder, LeftJoin<SOLine,
On<SOOrder.orderType, Equal<SOLine.orderType>,
And<SOOrder.orderNbr, Equal<SOLine.orderNbr>>>>> Orders;
public PXSelect<SOOrder,
Where<SOOrder.orderType, Equal<Current<SOOrder.orderType>>,
And<SOOrder.orderNbr, Equal<Current<SOOrder.orderNbr>>>>> Orders2;
public PXAction<SOOrder> View;
[PXUIField(DisplayName="View")]
[PXButton]
protected virtual IEnumerable view(PXAdapter a)
{
Orders2.AskExt();
return a.Get();
}
}
ASPX markup
<%# Page Language="C#" MasterPageFile="~/MasterPages/ListView.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="C9101000.aspx.cs" Inherits="Page_C9101000" Title="Untitled Page" %>
<%# MasterType VirtualPath="~/MasterPages/ListView.master" %>
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" PrimaryView="Orders" TypeName="GridWithPreview.SOPreview">
</px:PXDataSource>
<px:PXSmartPanel ID="pnlSODetail" runat="server" Style="z-index: 108;"
Caption="Sales Order Details" CaptionVisible="True"
Key="Orders2" ShowAfterLoad="false"
AutoRepaint="true"
AcceptButtonID="PXButtonOK">
<px:PXFormView ID="frmSO" runat="server" DataSourceID="ds" DataMember="Orders2" Width="100%"
Style="z-index: 100" TabIndex="17100">
<Template>
<px:PXLayoutRule runat="server" StartRow="True">
</px:PXLayoutRule>
<px:PXTextEdit ID="PXTextEdit1" runat="server" DataField="OrderType" Enabled="false">
</px:PXTextEdit>
<px:PXTextEdit ID="PXTextEdit2" runat="server" DataField="OrderNbr" Enabled="false">
</px:PXTextEdit>
<px:PXTextEdit ID="PXTextEdit3" runat="server" DataField="CustomerID" Enabled="false">
</px:PXTextEdit>
<px:PXTextEdit ID="PXTextEdit4" runat="server" DataField="OrderDesc" Enabled="false">
</px:PXTextEdit>
</Template>
</px:PXFormView>
<px:PXPanel ID="PXPanel1" runat="server" SkinID="Buttons">
<px:PXButton ID="pxBtnOK" runat="server" DialogResult="OK" Text="Close" />
</px:PXPanel>
</px:PXSmartPanel>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phL" runat="Server">
<pxa:PXGridWithPreview ID="grid" runat="server" Height="400px" Width="100%" Style="z-index: 100"
AllowPaging="True" AllowSearch="True" DataSourceID="ds" TabIndex="100"
GridSkinID="Inquire"
PreviewPanelStyle="z-index: 100; background-color: Window"
PreviewPanelSkinID="Preview">
<Levels>
<px:PXGridLevel DataKeyNames="OrderType,OrderNbr" DataMember="Orders">
<Columns>
<px:PXGridColumn DataField="OrderType">
</px:PXGridColumn>
<px:PXGridColumn DataField="OrderNbr">
</px:PXGridColumn>
<px:PXGridColumn DataField="CustomerID" Width="120px">
</px:PXGridColumn>
<px:PXGridColumn DataField="OrderDate" Width="90px">
</px:PXGridColumn>
<px:PXGridColumn DataField="Status">
</px:PXGridColumn>
<px:PXGridColumn DataField="OrderDesc" Width="200px">
</px:PXGridColumn>
</Columns>
</px:PXGridLevel>
</Levels>
<AutoSize Container="Window" Enabled="True" MinHeight="200" />
<PreviewPanelTemplate>
<px:PXHtmlView ID="edPreviewCtrl" runat="server" DataField="OrderDesc" TextMode="MultiLine" MaxLength="50" Width="100%" Height="100px" SkinID="Label">
<AutoSize Container="Parent" Enabled="true"></AutoSize>
</px:PXHtmlView>
</PreviewPanelTemplate>
<GridMode AllowAddNew="False" AllowDelete="False" />
</pxa:PXGridWithPreview>
</asp:Content>

how to use the updatepanl and postback trigger and progress templete in asp.net ajax

hi i am using update panel in my project, one page i have file upload control is there, so save the page file upload is not working that time i used post back trigger control (id is button id) now my problem is progress bar is not working , please give me any suggestion. my code is
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="up1" runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="IBtnSave" />
<asp:PostBackTrigger ControlID="ddlAgent" />
<asp:PostBackTrigger ControlID="btnSelectCity" />
<asp:PostBackTrigger ControlID="imgBtnAgent" />
<asp:PostBackTrigger ControlID="ImgBtnCancel" />
</Triggers>
progress bar code is
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="up1"
DynamicLayout="true">
<ProgressTemplate>
<div id="Progressbar" class="Progressbar" align="center" valign="middle" runat="server">
<asp:Image ID="Image1" Width="75" Height="95" runat="server" ImageUrl="~/images/animation_processing.gif" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
how to solve that problem, please give me any suggestion
Thank u
hemanth
i can find out the answer it is working
just write the java script like this
<script type="text/javascript">
var updateProgress = null;
function postbackButtonClick() {
updateProgress = $find("<%= UpdateProgress1.ClientID %>");
window.setTimeout("updateProgress.set_visible(true)", updateProgress.get_displayAfter());
return true;
}
</script>
after that
<asp:UpdatePanel runat="server">
<Triggers>
<asp:PostBackTrigger ControlID="IBtnSave" />
</Triggers>
button onclick event just call that function like this
<asp:Button ID="IBtnSave" runat="server" Text="Save" CssClass="art-button"
ClientIDMode="Static" onclick="IBtnSave_Click" OnClientClick="return postbackButtonClick();"/>

Resources