iSeller Commerce
iSeller POS Retail
iSeller POS F&B
iSeller POS Express
Crosslight
WebUI
ClientUI
What's New
Download Trial
Web Solution
Mobile Solution
Enterprise Solution
Custom Development
Blog
Community
Latest Development Blogs
ForumPostTopic
Browse By Tag
Hello,Ok. I have notified this request to our developer teams. I will let you know after I got a response from them.Actually, you don't need the combination server and client. If you used Dexter's workaround, it should work.Regards,Handy
Hello,
Ok. I have notified this request to our developer teams. I will let you know after I got a response from them.Actually, you don't need the combination server and client. If you used Dexter's workaround, it should work.
Regards,Handy
I need to perform this logic on the server side. My work around above works for me.
Can your report back when this issue is resolved? Thank you.
I’m really sorry to inform you that it’s an incorrect approach to hide a column by setting the display style property to ‘none’. It is suggested to set column’s visibility to false (columns.Visible=“False”).Should you need to access the value of other columns, please try to use HiddenDataMember approach.
I’m really sorry to inform you that it’s an incorrect approach to hide a column by setting the display style property to ‘none’. It is suggested to set column’s visibility to false (columns.Visible=“False”).
Should you need to access the value of other columns, please try to use HiddenDataMember approach.
The HiddenDataMember approach is using the column's Visible property. Correct?
If so, I will try this and report back.
Hello,AutoFitColumn can have a different result when set to true or false. When set it true, It will re-calculate all the columns width and resize the column proportionally.That's why there is a different time. But I could not say it would affect to performance much. Based on my test in my project and your original project, I still could not replicate very slow performance related to AutoFitColumns.Regards,Handy
AutoFitColumn can have a different result when set to true or false. When set it true, It will re-calculate all the columns width and resize the column proportionally.That's why there is a different time. But I could not say it would affect to performance much. Based on my test in my project and your original project, I still could not replicate very slow performance related to AutoFitColumns.
I have solutions in this thread that show that the AutoFitColumns property affects performance dramatically. Please re-read some of the posts in this thread. There were several performance issues and some how that AutoFitColumns property was altering performance. I am not sure if that was the culprit but it definately affected performance dramtically.
I think a change needs to be made to default the CSS in the WebGrid so that this sort of browser bug doesn't exist. You cannot expect your user base to know that they need to specify some CSS to get around this issue.
function HideColumn()//hide cloumn { var grid = ISGetObject("WebGrid1"); var col = grid.RootTable.Columns.GetNamedItem("Cloumn Name"); col.Set("Visible", "false", true); grid.RefreshAll(); }
function HideColumn()//hide cloumn { var grid = ISGetObject("WebGrid1");
var col = grid.RootTable.Columns.GetNamedItem("Cloumn Name");
col.Set("Visible", "false", true);
grid.RefreshAll();
That's not an option to perform a postback to hide a column.
Can I get an update on these bugs? Are they being addressed in the next release?
Thanks.
I removed the child items to avoid this issue. I didn't find a work-around that fixed the performance issue. You should default the necessary CSS so that this issue doensn't occur. One would never know to specify CSS or which CSS to avoid this issue.
Also, I don't understand the correlation between AutoFitColumn with the Grid and this issue but I have spent WAY too much time trying to figure it out.
Hello,It seems there is an issue in our latest build. I will forward this issue to our developer teams and will let you know the update.For temporary workaround, please try to disable/enable the WebButton from clientside.Regards,Handy
It seems there is an issue in our latest build. I will forward this issue to our developer teams and will let you know the update.For temporary workaround, please try to disable/enable the WebButton from clientside.
Can you please follow-up when this bug is fixed?
To resolve, I used a combination of server-side code (for initial load) and the Grid's InvokeScript for subsequent grid refreshes. The JavaScript just calls the WebButton's Enable/Disable method. An example:
/// <summary> /// Allow the Adjustment Factor Reports to be executed /// </summary> /// <param name="allowReportsExecute">Flag to indicate if reports can be executed</param> /// <remarks>JavaScript is also used due to Intersoft Bug where the control is not rendered during Fly Postback mode</remarks> private void AllowAdjustmentFactorReportsExecute(bool allowReportsExecute) { this.lbtnCreateAdjustmentFactorReports.Enabled = allowReportsExecute; string jsCode = Common.Utility.CommonHelper.GetJSCode(string.Format("{0}_EnableCreateAdjustmentFactorReportControl({1});", this.ClientID, Common.Utility.CommonHelper.GetJSBoolean(this.lbtnCreateAdjustmentFactorReports.Enabled))); this.grdMasterShell.ClientAction.InvokeScript(jsCode); }
Hello,For UI changes can be made on the server side only if the page is on FullPostBack mode. However, refresh is a FLyPostBack action. So, for UI changes, it is better if you do it in client.But if you would like to do in server, try the following code.protected void WebGrid1_InitializePostBack(object sender, ISNet.WebUI.WebGrid.PostbackEventArgs e) { if (e.Action == PostBackAction.RefreshData) { WebButton1.Enabled = false; WebGrid1.ClientAction.RenderControl(WebButton1); } } Regards,Handy
For UI changes can be made on the server side only if the page is on FullPostBack mode. However, refresh is a FLyPostBack action. So, for UI changes, it is better if you do it in client.But if you would like to do in server, try the following code.
protected void WebGrid1_InitializePostBack(object sender, ISNet.WebUI.WebGrid.PostbackEventArgs e) { if (e.Action == PostBackAction.RefreshData) { WebButton1.Enabled = false; WebGrid1.ClientAction.RenderControl(WebButton1); } }
Do you have a simple example? I am getting a JavaScript error using that approach.
I also tried the WebButton's RequiresUIRefresh method but it didn't work.
ISRes.asxd - Line 11 Invalid Character
IS.RenderControl("ctl00_WebPaneManagerShell_ViewContentShell_ContentPlaceHolder_ucAdjustmentFactorReports_btnCreateReport", "<xml id=\'ctl00_WebPaneManagerShell_ViewContentShell_ContentPlaceHolder_ucAdjustmentFactorReports_btnCreateReport_x\'><!--[CDATA[<CompressedXml><WebButton Text=\"Create Report\" Image=\"/Endurance.Re.AWB.Web/Images/16x16/wg5_newrow.gif\" DisplayMode=\"TextAndImage\" AutoPostback=\"a\" DisabledStyle=\"W112GFA\" ProgressTextStyle=\"W1DJCD0\" ServerUniqueID=\"b$c$d$e$f$g\" UseWebResourcesForScript=\"a\" UseWebResourcesForClient=\"a\" xmlInputHiddenUniqueID=\"b$c$d$e$f$g$btnCreateReport_h\" XmlCompressionEnabled=\"a\"><ButtonStyle Normal=\"W32AJ17\" Over=\"W8J3G1\" Active=\"W32GGF8\" /><FlyPostBackSettings /></WebButton><ISXMLMapping><NodeKey /><NodeValue /><AttrKey /><AttrValue /><ValKey>gebafdc</ValKey><ValValue>btnCreateReportContentPlaceHolderctl00TrueucAdjustmentFactorReportsViewContentShellWebPaneManagerShell</ValValue></ISXMLMapping></CompressedXml>]]--></xml><button id=\'ctl00_WebPaneManagerShell_ViewContentShell_ContentPlaceHolder_ucAdjustmentFactorReports_btnCreateReport_f\' class=\"W32AJ17 \" style=\'height:20px;width:125px;\'title=\'Create an adjustment factor report\' ><div><img align=absmiddle src=\'/Endurance.Re.AWB.Web/Images/16x16/wg5_newrow.gif\' hspace=2 /> Create Report</div></button><input type=\'hidden\' id=\'ctl00_WebPaneManagerShell_ViewContentShell_ContentPlaceHolder_ucAdjustmentFactorReports_btnCreateReport\' name=\'ctl00$WebPaneManagerShell$ViewContentShell$ContentPlaceHolder$ucAdjustmentFactorReports$btnCreateReport\"ctl00$WebPaneManagerShell$ViewContentShell$ContentPlaceHolder$ucAdjustmentFactorReports$btnCreateReport$btnCreateReport_h\" type=\"hidden\" id=\"ctl00_WebPaneManagerShell_ViewContentShell_ContentPlaceHolder_ucAdjustmentFactorReports_btnCreateReport_btnCreateReport_h\" />");InitWebButton(\'ctl00_WebPaneManagerShell_ViewContentShell_ContentPlaceHolder_ucAdjustmentFactorReports_btnCreateReport\');
/// <summary> /// Handles the Reports WebGrid control's OnInitializePostBack event /// </summary> /// <param name="sender">Sender</param> /// <param name="e">Event Arguments</param> protected void grdReports_OnInitializePostBack(object sender, ISNet.WebUI.WebGrid.PostbackEventArgs e) { switch (e.Action) { case ISNet.WebUI.WebGrid.PostBackAction.RefreshAll: case ISNet.WebUI.WebGrid.PostBackAction.RefreshData: this.btnCreateReport.Enabled = true; this.grdReports.ClientAction.RenderControl(this.btnCreateReport); Common.Utility.IntersoftHelper.WebGrid.RestoreWebGridScrollPosition(this.grdReports); break; } }
I usually use the WebGrids Client Side Event OnAfterResponseProcess There is a listing of common actions for the WebGrid somewhere Something like this...function WebGridTimesheet_OnAfterResponseProcess(controlId, actionName, lastRequestObject, xmlResponseObject) { switch (actionName) { case "Refresh": //Update some controls here break; case "DeleteRow": //Do something else here break; }} The ClientSideEvents are under the LayoutSettings in the Properties window
I usually use the WebGrids Client Side Event OnAfterResponseProcess
There is a listing of common actions for the WebGrid somewhere
Something like this...
function WebGridTimesheet_OnAfterResponseProcess(controlId, actionName, lastRequestObject, xmlResponseObject) { switch (actionName) { case "Refresh": //Update some controls here break; case "DeleteRow": //Do something else here break;
}
The ClientSideEvents are under the LayoutSettings in the Properties window
That's not what I am looking for. The Refresh is just the action that is causing the postback. After that postback occurs, I need to have the UI changes made on the sever side be reflected after the postback. Using AJAX, one would add the control to an UpdatePanel. That doensn't work here.
Hello,AddStyle() would not be used if you customize all your style with CSS. WebToolBar/WebMenuBar provides properties which can be configured for its style. I already sent you the sample which I include all the style in CSS and set it in those properties. <MenuStyleSettings BackgroundStripColor2="" MenuDropShadow="True" MenuAnimation="True" MenuWindowType="Normal" BackgroundStripColor="#E3EFFF"> <CustomStyle CssClass="CustomStyle"> </CustomStyle> <DisabledItemStyle> <Over CssClass="DisabledItemStyle-Over"> </Over> <Normal CssClass="DisabledItemStyle-Normal"> </Normal> </DisabledItemStyle> <CheckedItemStyle> <Over CssClass="CheckedItemStyle-Over"> </Over> <Normal CssClass="CheckedItemStyle-Normal"> </Normal> </CheckedItemStyle> <SeparatorStyle CssClass="SeparatorStyle"></SeparatorStyle> <FrameStyle CssClass="FrameStyle"> </FrameStyle> <ItemStyle> <Over CssClass="ItemStyle-Over"> </Over> <Normal CssClass="ItemStyle-Normal"> </Normal> </ItemStyle> </MenuStyleSettings> <HeaderButtonStyle> <Active CssClass="HeaderButtonStyle-Active"> </Active> <Over CssClass="HeaderButtonStyle-Over"> </Over> <Normal CssClass="HeaderButtonStyle-Normal"> </Normal> </HeaderButtonStyle> <BodyStyle BackColor="#BFDBFF"></BodyStyle> <CommandStyle> <Active CssClass="CommandStyle-Active"> </Active> <Over CssClass="CommandStyle-Over"> </Over> <Normal CssClass="CommandStyle-Normal"> </Normal> </CommandStyle> <CommandDisabledStyle CssClass="CommandDisabledStyle"> </CommandDisabledStyle> <SeparatorStyle CssClass="SeparatorStyle1"></SeparatorStyle> <HandleStyle BackColor="#BFDBFF"></HandleStyle> <OptionStyle BackColor="#C4C4AD"></OptionStyle> <HeaderCaptionStyle CssClass="HeaderCaptionStyle"> </HeaderCaptionStyle> I will need to discuss with our developer about AutoFitColumn property. But after configure CSS, without AutoFitColumn, the performance works well.Regards,Handy
AddStyle() would not be used if you customize all your style with CSS. WebToolBar/WebMenuBar provides properties which can be configured for its style. I already sent you the sample which I include all the style in CSS and set it in those properties.
<MenuStyleSettings BackgroundStripColor2="" MenuDropShadow="True" MenuAnimation="True" MenuWindowType="Normal" BackgroundStripColor="#E3EFFF"> <CustomStyle CssClass="CustomStyle"> </CustomStyle> <DisabledItemStyle> <Over CssClass="DisabledItemStyle-Over"> </Over> <Normal CssClass="DisabledItemStyle-Normal"> </Normal> </DisabledItemStyle> <CheckedItemStyle> <Over CssClass="CheckedItemStyle-Over"> </Over> <Normal CssClass="CheckedItemStyle-Normal"> </Normal> </CheckedItemStyle> <SeparatorStyle CssClass="SeparatorStyle"></SeparatorStyle> <FrameStyle CssClass="FrameStyle"> </FrameStyle> <ItemStyle> <Over CssClass="ItemStyle-Over"> </Over> <Normal CssClass="ItemStyle-Normal"> </Normal> </ItemStyle> </MenuStyleSettings> <HeaderButtonStyle> <Active CssClass="HeaderButtonStyle-Active"> </Active> <Over CssClass="HeaderButtonStyle-Over"> </Over> <Normal CssClass="HeaderButtonStyle-Normal"> </Normal> </HeaderButtonStyle> <BodyStyle BackColor="#BFDBFF"></BodyStyle> <CommandStyle> <Active CssClass="CommandStyle-Active"> </Active> <Over CssClass="CommandStyle-Over"> </Over> <Normal CssClass="CommandStyle-Normal"> </Normal> </CommandStyle> <CommandDisabledStyle CssClass="CommandDisabledStyle"> </CommandDisabledStyle> <SeparatorStyle CssClass="SeparatorStyle1"></SeparatorStyle> <HandleStyle BackColor="#BFDBFF"></HandleStyle> <OptionStyle BackColor="#C4C4AD"></OptionStyle> <HeaderCaptionStyle CssClass="HeaderCaptionStyle"> </HeaderCaptionStyle>
I will need to discuss with our developer about AutoFitColumn property. But after configure CSS, without AutoFitColumn, the performance works well.
I went through the new CSS and made one-by-one changes to narrow down the CSS causing the problem. Our existing application had similiar CSS except some were CSS classes and other was CSS explicitly in the markup. Oddly, the missing css was the following that references an empty CSS class: <CustomStyle CssClass="CustomStyle"></CustomStyle>
This really makes no sense at all. Please find out from the developers the following:
1) What CSS MUST be defined within the WebMenubar/WebToolbar to avoid this performance bug? I am looking for specific Style properties that must be specified and the valid CSS classes and/or style that can be used?
2) Why does the WebGrid's AutoFitColumn property fixes this performance bug?
3) Why does a Split/DropdOWn button within a WebMenubAR/WebToolbar control cause this performance bug? What is specific about this that causes the bug?
Thank you.
I also verified this is an issue with FIreFox and not just IE.
Hi,Yes. All the style should be customized in CSS. If you don't use CSS, WebToolBar/WebMenuBar would use AddStyle() (default mechanism). As I said before, somehow this method is not functioning in IE.If you run the sample in other browser, the performance would not slow.Also, In your sample, I didn't touch anything about AutoFitColumn. Regards,Handy
Hi,
Yes. All the style should be customized in CSS. If you don't use CSS, WebToolBar/WebMenuBar would use AddStyle() (default mechanism). As I said before, somehow this method is not functioning in IE.If you run the sample in other browser, the performance would not slow.Also, In your sample, I didn't touch anything about AutoFitColumn.
What exactly do I have to do to ensure that the AddStyle() is not used? What CSS do I have to specify?
As I mentioned in this thread, the WebGrid's AutoFitColumn property when set to TRUE removes the performance bug. This is also true if I don't have a WebToolBar with a splitButton/DropDownList button with a child item. I don't understand how the AddStyle relates to any of this?
or
Choose this if you're already a member of Intersoft Community Forum. You can link your OpenID account to your existing Intersoft Social ID.
Choose this if you don't have an Intersoft account yet. Your authenticated OpenID will be automatically linked to your new Intersoft account.
Enter your Wordpress Blogname