Archive

Archive for the ‘ASP.NET’ Category

UltraWebGrid in Infragistics 9 displays default column captions.

February 22nd, 2010 Yuriy No comments

Recently I upgraded an ASP.NET project from ancient 6.3 version of Infragistics to current (at the moment) 9.2. Suddenly UltraWebGrid control began to display an unpleasant effect - columns that used to have no caption now showed what appeared to be default captions:

New look of UltraWebGrid

Looking at grid's HTML markup I noticed that it set the caption to an empty string (showing code for one column):

<igtbl:UltraGridColumn HeaderText="">
   <Header Caption="">
   </Header>
</igtbl:UltraGridColumn>

Apparently it's a new behavior in Infragistics 9.x to substitute empty captions with default column names. The solution is to set caption to a single space which, while invisible, is considered a real text caption and is not substituted by anything:

<igtbl:UltraGridColumn>
   <Header Caption=" ">
   </Header>
</igtbl:UltraGridColumn>

The result:

Correct look of UltraWebGrid

Correcting “Object Required” error in Infragistics “this._getContainer=function()” internal code

January 28th, 2010 Yuriy No comments

After upgrading to NetAdvantage 9.1 my UltraWebGrid which uses a WebCombo as editor control was starting to throw "Object Required" error inside of Infragistics own JavaScript code in function "_getContainer". After a bit of experimenting I found out that the error does not happen if I click an existing cell that uses the WebCombo to show the dropdown prior to executing the action that would cause the error.

That lead me to believe that error happens because WebCombo is not initialized in some way and clicking the cell does that initialization. So I tried to simulate that behavior programmatically, by entering and immediately exiting cell edit mode:

// to prevent error - showing and hiding dropdown
var oCell = igtbl_getCellById(sCellId)
oCell.beginEdit();
oCell.endEdit(true);

where sCellId - is ID of any existing cell that uses dropdown as an editor. And Bingo! the error went away. Also beginEdit/endEdit happen so fast, so even though technically they show and hide the dropdown - in reality nothing appears on the screen.

Using LINQ to bind flat data to Infragistics UltraWebTree

January 10th, 2010 Yuriy No comments

Often you have to operate with flattened data that in reality contains multiple levels of hierarchy. For example it can come as a result of several SQL JOIN statement and look like this:

In this example data consist of static root column, region, site, type and state. And the data has clearly defined hierarchy (e.g. Region "India" has site "Bangalore", site "Bangalore" has types "Application" and "Area", type "Application" has states "N/A" and "Testing").

To load this data into Infragistics UltraWebTree I put together a small procedure: Read more...

Categories: ADO.NET, ASP.NET, Infragistics, VB.NET Tags: , ,

Serving image from ASP.NET MSChart to external applications via WebService

January 6th, 2010 Yuriy No comments

I have an existing ASP.NET application that uses Microsoft Charting control for .NET. I created a CCharting class that hold several methods related to getting data for the chart, applying chart appearance etc. Main method of that class is

Public Sub DrawChart(ByVal i_omsChart As Chart, ByVal i_iChartWidth As Integer, ByVal i_iChartHeight As Integer)

As a 1st parameter it accepts actual chart control from the page, 2nd and 3rd are chart width and height. The method then gets the data for the chart, binds chart to that data, applies chart appearance (colors, series, axises) etc. So drawing a chart is a simple as instantiating the class and calling the method:

Dim oCharting As New CCharting
CCharting.DrawChart(xmsChart,500,300)

where xmsChart is a chart control from HTML markup of the page. The result is displayed on the page:

But now I needed to give access to that chart to external applications, that do not have access neither to chart data nor to Microsoft charting control, may run under different OS's, be Web apps or not. Read more...

PHPBB: Update template file by purging cache

January 5th, 2010 Yuriy No comments

Scenario: You're trying to update a template file in your PHPBB 3.0.x forum, for example to include Google Adsense code into overall_header.html file to display banner on top of all the pages. But after modifying and uploading the file nothing changes, board still displays old template.

What is happening - PHPBB displays cached version of the template. Forum software caches commonly used files to improve performance. The solution is to purge cache.
Purgin Cache in PHPBB 3.0.x board
Login to your forum Administration Control Panel and click Run Now in Purge the cache section. After purging is complete changes in your template take effect.

Categories: 3rd party, HTML/CSS Tags: , , ,

Solution for “Could not load type System.Web.UI.ScriptReferenceBase from System.Web.Extensions” error

December 29th, 2009 Yuriy No comments

If your ASP.NET application worked fine in your Development environment, but after deploying it to staging or production crashes with error:

Could not load type System.Web.UI.ScriptReferenceBase from System.Web.Extensions

most likely it was compiled against .NET 3.5 SP1 but the target machine has original .NET 3.5 framework without SP1. The solution is download Service Pack 1 and install it on target server. Another possibility - compile the project against original .NET 3.5 framework.

Categories: ASP.NET Tags: , , ,

Microsoft Chart for ASP.NET 3.5: Correctly setting image storage location

December 24th, 2009 Yuriy No comments

If you're using Microsoft Chart control for .NET 3.5 you can specify where and how chart images are stored. And if for this purpose you're trying to use Chart HTTP Handler setting in web config similar to this:

<add key="ChartImageHandler" value="storage=file;url=./Temp"/>

and it is failing (for example chart images are alway created in the root folder of your Web application) - there is an alternative. You can specify location of the images in properties of the chart control itself:

Just add relative path to your storage folder in front of the chart sequence string in "ImageLocation" property. and specify "UseImageLocation" for "ImageStorageMode" property

Categories: ASP.NET Tags: , ,

IE Modal Dialog and ASP.NET PostBack solution

December 2nd, 2009 Yuriy No comments

Internet Explorer has a well known proprietary modal dialog window that can be opened using showModalDialog DOM command. While it is not a good idea to use browser-specific functionality, for many it's a convenient way to display a modal window and return result back to the parent.

Modal Dialog is designed to display data, accept user input and close window, returning the input back to the parent. It is not meant for postbacks, if you try initiating postback in Modal Dialog, all kinds of weird stuff could happen - from opening postback in a new window to JavaScript errors.

But there is an easy fix for that. If you include following line:

<base target="_self"></base>

inside of your page header in HTML source, e.g.:

<head>
    <title>My Page</title>
    <base target="_self"></base>
</head>

modal dialog will be able to successfully postback to itself.

UltraWebGrid in OutlookGroupBy Mode: How to display custom aggregates (SUM, AVG, MIN, MAX) in GroupBy row

November 19th, 2009 Yuriy No comments

Last year I described a way to display accurate row count when grid in OutlookGroupBy mode has multiple sub-groups.

That solution requires custom counting function. Fortunately to display aggregates such as SUM, AVG, MIN and MAX UltraWebGrid has a built-in functionality in form of GroupByRowDescriptionMaskDefault property of DisplayLayout. It specifies the string to be displayed in every GroupBy row and can include following substitutes:

  • [caption] - will display GroupBy column header text
  • [value] - will display common to the group cell value
  • [count] - will display row count (does not work correctly with sub-groups)
  • [avg], [sum], [min], [max] - will display the aggregate for the column it's grouped by
  • [avg:ColumnKey], [sum:ColumnKey], [min:ColumnKey], [max:ColumnKey] - will display the aggregate for any other column, where ColumnKey is the key of the column

With this in mind in just a few simple steps we can make UltraWebGrid to display something like this:


Read more...

Internet Explorer renders incorrect HTML if UserAgent string is too long

November 12th, 2009 Yuriy No comments

I've encountered a strange problem: 2 identical client machines (WinXP/IE7) were connecting to a website (running on IIS6, ASP.NET 1.1 and employing some Infragistics controls - UltraWebGrid, WebTab, WebMenu). One machine showed a perfectly rendered page, while the other displayed page with missing images and styles and JavaScript functions behaved weirdly. Also, closer examination of HTML source of the page revealed that Infragistics controls rendered very different HTML between 2 machines. Mystery.

The only difference between 2 browsers I found was UserAgent string (For quick way to check your user agent go to http://whatsmyuseragent.com/). Read more...