﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Intersoft Community - WebGrid Enterprise - Webgrid in a WebTab causes Microsoft JScript runtime error: 'null' is null or not an object error.</title><link>http://www.intersoftsolutions.com/Community/WebGrid/Webgrid-in-a-WebTab-causes-Microsoft-JScript-runtime-error-null-is-null-or-not-an-object-error/</link><description /><generator>http://www.intersoftsolutions.com</generator><language>en</language><copyright>Copyright 2002 - 2015 Intersoft Solutions Corp. All rights reserved.</copyright><ttl>60</ttl><item><title>Webgrid in a WebTab causes Microsoft JScript runtime error: 'null' is null or not an object error.</title><link>http://www.intersoftsolutions.com/Community/WebGrid/Webgrid-in-a-WebTab-causes-Microsoft-JScript-runtime-error-null-is-null-or-not-an-object-error/</link><pubDate>Mon, 29 Nov 2010 10:22:04 GMT</pubDate><dc:creator>handy@intersoftpt.com</dc:creator><description>&lt;p&gt;Hello Jason,&lt;/p&gt;
&lt;p&gt;Please see my attachment sample. The WebGrid binds dynamically from button. it is also placed inside WebTab. Everything works well. Perhaps, you can refer into my sample.&lt;/p&gt;
&lt;p&gt;Also, Please try to use the latest hotfixes for the best result (WebGrid, WebDesktop, WebUIFramework).&lt;/p&gt;
&lt;p&gt;Regards,&lt;br /&gt;Handy&lt;/p&gt;</description></item><item><title>Webgrid in a WebTab causes Microsoft JScript runtime error: 'null' is null or not an object error.</title><link>http://www.intersoftsolutions.com/Community/WebGrid/Webgrid-in-a-WebTab-causes-Microsoft-JScript-runtime-error-null-is-null-or-not-an-object-error/</link><pubDate>Thu, 25 Nov 2010 19:16:31 GMT</pubDate><dc:creator>jasonw43</dc:creator><description>&lt;p&gt;I have a web grid inside a Webtab.  The webgrid's datasource changes depending on a button click (different tables for each button).&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;This works beautifully when sitting in a page by itself, however the minute I place it in a WebTab, I get problems whenever I click on a control that does a post back (the error being Microsoft JScript runtime error: 'null' is null or not an object).&lt;/p&gt;
&lt;p&gt;Here is the aspx page.&lt;/p&gt;&lt;pre&gt;&amp;lt;%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Master.aspx.vb" Inherits="SCLSalesOrderForm.Master" %&amp;gt;

&amp;lt;%@ Register Assembly="ISNet.WebUI.WebDesktop" Namespace="ISNet.WebUI.WebDesktop"
    TagPrefix="ISWebDesktop" %&amp;gt;
&amp;lt;%@ Register Assembly="ISNet.WebUI.WebGrid" Namespace="ISNet.WebUI.WebGrid" TagPrefix="ISWebGrid" %&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head id="Head1" runat="server"&amp;gt;
    &amp;lt;title&amp;gt;Master Page&amp;lt;/title&amp;gt;
    &amp;lt;link rel="stylesheet" type="text/css" href="../global.css" /&amp;gt;
    &amp;lt;meta http-equiv="Pragma" content="no-cache" /&amp;gt;
    &amp;lt;meta http-equiv="Expires" content="-1" /&amp;gt;
    &amp;lt;meta http-equiv="CACHE-CONTROL" content="NO-CACHE" /&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body id="Body1" runat="server"&amp;gt;
    &amp;lt;form id="Form1" runat="server" style="height: 552px"&amp;gt;
    &amp;lt;div&amp;gt;
        &amp;lt;ISWebDesktop:WebTab ID="WebTab1" runat="server" Height="600px" Width="800px"&amp;gt;
            &amp;lt;TabPages&amp;gt;
                &amp;lt;ISWebDesktop:WebTabItem Text="Tab 1"&amp;gt;
                    &amp;lt;PageTemplate&amp;gt;
                        &amp;lt;div&amp;gt;
                            &amp;lt;br /&amp;gt;
                            &amp;lt;asp:Table ID="Table2" runat="server"&amp;gt;
                                &amp;lt;asp:TableRow&amp;gt;
                                    &amp;lt;asp:TableCell&amp;gt;
                                        &amp;lt;asp:Button ID="btnCustomer" runat="server" Text="Customer Lookup" /&amp;gt;
                                    &amp;lt;/asp:TableCell&amp;gt;
                                    &amp;lt;asp:TableCell&amp;gt;
                                        &amp;lt;asp:Button ID="btnSales" runat="server" Text="Sales Order Lookup" /&amp;gt;
                                    &amp;lt;/asp:TableCell&amp;gt;
                                    &amp;lt;asp:TableCell&amp;gt;
                                        &amp;lt;asp:Button ID="btnProcess" runat="server" Text="Process Sales Order" /&amp;gt;
                                    &amp;lt;/asp:TableCell&amp;gt;
                                &amp;lt;/asp:TableRow&amp;gt;
                            &amp;lt;/asp:Table&amp;gt;
                            &amp;lt;br /&amp;gt;
                            &amp;lt;ISWebGrid:WebGrid ID="grdWebGrid1" runat="server" Height="500px" UseDefaultStyle="true"
                                DefaultStyleMode="Win7" HorizontalAlign="NotSet" OnInitializeRow="grdWebGrid1_InitializeRow"
                                OnInitializeDataSource="grdWebGrid1_InitializeDataSource" OnPrepareDataBinding="grdWebGrid1_PrepareDataBinding"
                                Width="790px"&amp;gt;
                                &amp;lt;FlyPostBackSettings PostInputControls="True" /&amp;gt;
                                &amp;lt;RootTable DataKeyField="" GridLineStyle="NotSet" Caption="Valuations"&amp;gt;
                                &amp;lt;/RootTable&amp;gt;
                                &amp;lt;LayoutSettings AllowAddNew="No" AllowDelete="No" AllowColumnMove="Yes" AllowEdit="No"
                                    AllowExport="Yes" AllowFilter="Yes" AllowGrouping="Yes" AllowSelectColumns="Yes"
                                    AllowSorting="Yes"&amp;gt;
                                &amp;lt;/LayoutSettings&amp;gt;
                            &amp;lt;/ISWebGrid:WebGrid&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/PageTemplate&amp;gt;
                &amp;lt;/ISWebDesktop:WebTabItem&amp;gt;
                &amp;lt;ISWebDesktop:WebTabItem Text="Tab 2"&amp;gt;
                    &amp;lt;PageTemplate&amp;gt;
                        &amp;lt;div&amp;gt;
                            Test Tab 2
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/PageTemplate&amp;gt;
                &amp;lt;/ISWebDesktop:WebTabItem&amp;gt;
                &amp;lt;ISWebDesktop:WebTabItem Text="Tab 3"&amp;gt;
                    &amp;lt;PageTemplate&amp;gt;
                        &amp;lt;div&amp;gt;
                            Test Tab 3
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/PageTemplate&amp;gt;
                &amp;lt;/ISWebDesktop:WebTabItem&amp;gt;
            &amp;lt;/TabPages&amp;gt;
        &amp;lt;/ISWebDesktop:WebTab&amp;gt;
        &amp;lt;asp:HiddenField ID="fldMode" runat="server" /&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And here is the backend code.&lt;/p&gt;&lt;pre&gt;BackEnd Code:

Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Web.Management
Imports System.Web
Partial Public Class Master
    Inherits System.Web.UI.Page
    Dim mw As New MessageWindow

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            fldMode.Value = "Customer"
        End If

        WebTab1.ActiveTabIndex = Convert.ToInt16(fldTab.Value)

        grdWebGrid1.RebindDataSource()

    End Sub
    Protected Sub grdWebGrid1_InitializeDataSource(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.DataSourceEventArgs)

        Dim ds As New DataSet
        Dim DBConn As SqlConnection
        Dim da As SqlDataAdapter
        Dim DBSelect As String

        If fldMode.Value = "Customer" Then
            DBSelect = "Select [Customer], [Name], [CreditStatus] as 'Credit Status', [ShipToAddr3] as 'Suburb', [ShipToAddr4] as 'State', [Salesperson], [Contact] from [ArCustomer] ORDER BY [Customer] ASC"
            DBConn = New SqlConnection(ConfigurationManager.ConnectionStrings("SCL").ConnectionString)
            da = New SqlDataAdapter(DBSelect, DBConn)
            da.Fill(ds, "Customer")
            grdWebGrid1.RootTable.DataKeyField = "Customer"
        Else
            DBSelect = "Select [SalesOrder] as 'Sales Order', [OrderStatus] as 'Order Status', [Customer], [Salesperson], [CustomerPoNumber] as 'PO Number', [OrderDate] as 'Order Date' from [SorMaster] where ActiveFlag &amp;lt;&amp;gt; 'N'"
            DBConn = New SqlConnection(ConfigurationManager.ConnectionStrings("SCL").ConnectionString)
            da = New SqlDataAdapter(DBSelect, DBConn)
            da.Fill(ds, "SalesOrder")
            grdWebGrid1.RootTable.DataKeyField = "SalesOrder"
        End If

        e.DataSource = ds

    End Sub

    Protected Sub grdWebGrid1_PrepareDataBinding(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.DataSourceEventArgs)

        grdWebGrid1.RetrieveHierarchicalStructure()

    End Sub
    Protected Sub grdWebGrid1_InitializeRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs) Handles grdWebGrid1.InitializeRow

        If grdWebGrid1.RootTable.DataKeyField = "SalesOrder" Then
            grdWebGrid1.RootTable.Columns.GetNamedItem("Order Date").DataFormatString = "dd/MM/yyyy"
        End If

    End Sub


    Private Sub btnSales_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSales.Click

        fldMode.Value = "SalesOrder"
        Dim ds As New DataSet
        Dim DBConn As SqlConnection
        Dim da As SqlDataAdapter
        Dim DBSelect As String

        DBSelect = "Select [SalesOrder] as 'Sales Order', [OrderStatus] as 'Order Status', [Customer], [Salesperson], [CustomerPoNumber] as 'PO Number', [OrderDate] as 'Order Date' from [SorMaster] where ActiveFlag &amp;lt;&amp;gt; 'N'"
        DBConn = New SqlConnection(ConfigurationManager.ConnectionStrings("SCL").ConnectionString)
        da = New SqlDataAdapter(DBSelect, DBConn)
        da.Fill(ds, "SalesOrder")
        grdWebGrid1.RootTable.DataKeyField = "SalesOrder"
        grdWebGrid1.Width = 650
        grdWebGrid1.DataSource = ds
        grdWebGrid1.RebindDataSource()

    End Sub

    Private Sub btnCustomer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCustomer.Click

        Dim ds As New DataSet
        Dim DBConn As SqlConnection
        Dim da As SqlDataAdapter
        Dim DBSelect As String

        fldMode.Value = "Customer"
        DBSelect = "Select [Customer], [Name], [CreditStatus] as 'Credit Status', [ShipToAddr3] as 'Suburb', [ShipToAddr4] as 'State', [Salesperson], [Contact] from [ArCustomer] ORDER BY [Customer] ASC"
        DBConn = New SqlConnection(ConfigurationManager.ConnectionStrings("SCL").ConnectionString)
        da = New SqlDataAdapter(DBSelect, DBConn)
        da.Fill(ds, "Customer")
        grdWebGrid1.RootTable.DataKeyField = "Customer"
        grdWebGrid1.Width = 790

        grdWebGrid1.DataSource = ds
        grdWebGrid1.RebindDataSource()

    End Sub

    Private Sub btnProcess_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnProcess.Click

        Try
            Dim ThisKey As String
            Dim ThisRow As Integer
            Dim ThisMode As String

            ThisRow = grdWebGrid1.RetrieveClientLastSelectedObject().RowIndex
            ThisKey = Convert.ToString(grdWebGrid1.RootTable.Rows(ThisRow).Cells(0).Value)

            If ThisKey = "" Then
                Call mw.UserMsgBox("Please select an instruction to process.")
            Else
                If fldMode.Value = "Customer" Then
                    ThisMode = "Add"
                Else
                    ThisMode = "Update"
                End If

                Dim StringURL As String = "SorDetail.aspx?Mode=" &amp;amp; ThisMode &amp;amp; "&amp;amp;id=" &amp;amp; ThisKey
                Page.Response.Redirect(StringURL)
            End If
        Catch ex As Exception
            If fldMode.Value = "Customer" Then
                Call mw.UserMsgBox("Please select a customer to process.")
            Else
                Call mw.UserMsgBox("Please select a sales order to process.")
            End If

        End Try

    End Sub
End Class&lt;/pre&gt;

&lt;p&gt;If I initially click on the other tabs, I get the correct information displayed - the only problem seems to occur when I click on one of the  buttons that sends a postback.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The version of WebDesktopManager is 3.0.7200.310 and the version of WebGrid is 7.0.7200.403.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Jason.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item></channel></rss>