User Profile & Activity

Product Support Moderator
Page
of 22
Posted: January 21, 2010 12:11 AM

Hi George,

After analyzing your issue further, we found that the issue is not a bug in WebCombo. It's more to the LINQ limitation in which new select projection will cause underlying datasource's schema to be invalid. This caused WebCombo to unable to filter the "conditions" clause because the target members are no longer existed in the datasource after the new projection.

Unlike WebGrid which processes all data after data retrieval, WebCombo requires pre-databound filtering process. As such, WebCombo requires the fields used in DataTextField and DataValueField to remain the same after the new projection.

The following code shows the working version of WebCombo bound to LINQ DataSource.

<ISWebCombo:WebCombo ID="WebCombo1" runat="server" 
        DataSourceID="ISLinqDataSource1" DataTextField="ProductName" 
        DataValueField="ProductName" Height="20px" 
        UseDefaultStyle="True" 
        Width="200px">
    </ISWebCombo:WebCombo>
    <ISLinqDataSource:ISLinqDataSource ID="ISLinqDataSource1" runat="server" 
        ContextTypeName="NorthwindDataContext" 
        Select="new (ProductName, UnitPrice)" 
        TableName="Products">
    </ISLinqDataSource:ISLinqDataSource>

Let me know if you have any questions. 

Hope this helps.

Hi Scott,

I haven't heard from you since yesterday. Is everything fine? Let me know if you have any questions or things that unclear.

We're waiting for your final confirmation about this resolution before going into experimental build. Unless there are other better approaches, we trust that the previously suggested approach should be the most sophisticated available.

Hope this helps. Thanks!

Here is a suggestion that the developers might be able to use to prevent this type of error:

http://stackoverflow.com/questions/1930691/stop-running-this-script-ie-for-large-ajax-requests

 

Dan, thanks for your hints. We're aware about this technique, it's mostly applicable in simpler scenarios where the code logic doesn't have comprehensive life cycle. 

FYI, in WebGrid, the event life cycle such as OnDataBound, OnInitializeRow, OnInitializeCell, OnPostDataBound, OnRender and so on -- needs to be fired consistently in correct order. And thus, the time out technique can't be used as it'll break the event life cycle.


Hi Scott,

Thanks for your detailed reply.

Actually the "stop this script" error is not a big deal as we may found the workaround to suppress the message. The real issue we consider here is the usage of the application itself, i.e, do you really want to display such a huge amount of data to your users?

The example you sent us include a group with 1000+ records in a group. While we might be able to easily suppress the "stop this script" prompt based on your sample, still this "large data" issue could arise again, i.e, if you have 5000+ or how about 10,000+ records. 

In our preliminary test, the browser that we used (Internet Explorer 8) will throw several errors such as "Out of memory" due to its limitation in the number of objects being created and the elements being rendered (we're talking about displaying > 2000 records at once). So we can conclude that it's not effective to present such a huge amount of data in web clients (browsers) due to its limitations.

To this end, we're seeing that breaking down the rows in several chunks is more to a feasible solution in terms of scalability. So either you have 1000, 5000 or 10,000 rows, the group expand process can be done consistently fast. However, the draw back is that users will be required to click an indicator to load more data, although we don't think that's an issue since most Web applications today (such as flickr, facebook, etc) used similar approach to cope with this scalability issue.

Let me know your feedback on this matter, or if you have other ideas or thoughts. Thank you.

Hope this helps.

Hi Scott,

We're currently looking at the performance issue you're experiencing. We'd like to hear your feedback on how you desire to resolve the problem.

For background information, WebGrid currently loads all rows of a specific group on demand when Virtual Load paging is enabled. In the case when thousand rows existed in a group row, the browser itself will limit such massive rendering operation, that's why you see the 'stop the script' prompt.

To address this problem, the Grid will need a major enhancement in the virtual loading mechanism. The idea is to introduce another "breakdown" or some kind of paging inside the group. In such large group case, only a small amount (user-specified) rows will be rendered. If more data is available, a kind of "more" icon will be visible in the bottom of the last row in that group. As expected, more data will be retrieved when the icon is clicked.

Do you think the proposed technique above would be a permanent solution to handle large data in grouped scenario? Please share your thoughts if you have other ideas or feedback. 

Thanks!

Posted: December 16, 2009 8:36 AM

Hi Patrick,

Yes, 2009 R2 fully supports XHTML in all major browsers. The issue you found was one of the known rendering issue in IE7.

The following simple style should address the issue. Please add the style to your page.

  <style type="text/css">
    
        .DefSIcon { position: static }
        
  </style>

Let me know if that works for you. Thanks!

Hope this helps.

Posted: December 13, 2009 10:29 PM

Hi Yaniv,

Glad to hear that everything worked great for you.

Keep sharing your experiences with us here.

Thank you, and enjoy!

Posted: November 12, 2009 6:32 AM

Hi Mark,

Your issue has been filed as bug #479. The fix will be available in the upcoming hotfix, which is also the last build for WebGrid 7 as R2 is coming soon.

Let me know if you require the build soon, so we can send it separately to your private email.

Thanks!

Hi Michael,

Do you get this error in our batch update sample? If not, do you have any specific scenarios in your application?

 

I'm sorry, why can't you create a simple page with a WebMenuBar and a custom WebControl control?  I'm very busy with my own work and don't have time to constantly create samples that you can easily create yourselves.

I believe a basic working sample is not too much of asking, specifically this issue is very specific to a scenario and related to other custom controls that may beyond the scope of our support. 

As in any other professional software companies, the support process should be obvious and clear, including a complete and detailed steps to reproduce, actual result, and expected result. In the case that steps to reproduce is hard to be explained, a working sample or a brief video would be very useful to help us identifying your issue. Obviously, we won't be asking for samples or videos for most issues that we can replicate without depending on other custom controls.

Thanks again for your patience in this matter.

All times are GMT -5. The time now is 7:40 PM.
Previous Next