Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
935
WHDG - EnableDataViewState issues
posted

Hi All,

I have a WHDG bound to a WebHierarchicalDataSource with a list of custom entities. The design on the grid is as follows:

                                                    <ig:WebHierarchicalDataGrid ID="uxDynamicContentsGrid" runat="server" Width="550px" Height="750px"

                                                        AutoGenerateBands="False" AutoGenerateColumns="False" EnableAJAX="false"

                                                        DataMember="DCDetails" Key="DCDetails" EnableDataViewState="false"

                                                        DataKeyFields="DynamicContentViewId"

                                                        GroupingSettings-ShowRemoveButton="False" StyleSetName="Office2007Silver"

                                                        GroupingSettings-GroupedRowTextMask="{1}" ShowHeader="False">

                                                        <EmptyRowsTemplate>There are no groups/ dynamic content assigned to the selected view.</EmptyRowsTemplate>

                                                        <GroupingSettings EnableColumnGrouping="True" GroupAreaVisibility="Hidden" ShowRemoveButton="False">

                                                            <RemoveButton AltText="Ungroup Column" />

                                                        </GroupingSettings>

                                                        <Behaviors>

                                                            <ig:Sorting Enabled="false"></ig:Sorting>

                                                            <ig:Activation>

                                                            </ig:Activation>

                                                            <ig:EditingCore AutoCRUD="False">

                                                                <Behaviors>

                                                                <ig:CellEditing>

                                                                        <ColumnSettings>

                                                                        <ig:EditingColumnSetting ColumnKey="DynamicContentName" ReadOnly="true" />

                                                                        </ColumnSettings>

                                                                    </ig:CellEditing>

                                                                    <ig:RowDeleting />

                                                                </Behaviors>

                                                            </ig:EditingCore>

                                                        </Behaviors>

The grid is bound on every postback (to resolve certain other issues we have). The loading of the grid is as follows:

        uxDynamicContentsGrid.Rows.Clear()

        uxDynamicContentsGrid.GroupingSettings.EnableColumnGrouping = DefaultableBoolean.False

        uxDynamicContentsGrid.GroupingSettings.GroupedColumns.Clear()

        uxDynamicContentsGrid.GroupingSettings.ColumnSettings.Clear()

        uxDynamicContentsSource.DataRelations.Clear()

        uxDynamicContentsSource.DataViews.Clear()

        uxDynamicContentsGrid.DataSource = Nothing

        uxDynamicContentsGrid.DataBind()

        Dim viewId As Integer = uxViewDropDown.SelectedValue

        If viewId > 0 Then

            contents = entityManager.GetContentsByEntityIdAndViewId(EntityId, viewId)

        Else

            contents = entityManager.GetContentsByEntityId(EntityId)

        End If

        ' Specify data views

        Dim dv As New Infragistics.Web.UI.DataSourceControls.DataView

        dv = New Infragistics.Web.UI.DataSourceControls.DataView

        dv.ID = "DCDetails"

        dv.DataSource = contents

        ' Add view to datasource

        uxDynamicContentsSource.DataViews.Add(dv)

        If viewId > 0 Then

            uxDynamicContentsGrid.GroupingSettings.EnableColumnGrouping = DefaultableBoolean.True

            ' A calculated property OrderedGroupName has been added which returns GroupOrder_ContentOrder_GroupName

            Dim setting As New GridControls.ColumnGroupingSetting

            setting.ColumnKey = "OrderedGroupName"

            setting.GroupComparer = New GroupNameComparer()

            uxDynamicContentsGrid.GroupingSettings.ColumnSettings.Add(setting)

            uxDynamicContentsGrid.GroupingSettings.GroupedColumns.Add("OrderedGroupName")

        End If

        uxDynamicContentsGrid.DataSource = uxDynamicContentsSource

        uxDynamicContentsGrid.DataBind()

 

THE ISSUE

1. WE are trying to avoid the binding of the grid on every postback. As per, other forum responses, we tried setting the EnableDAtaViewState property of the grid and binding the datasource only if not postback.

However, we are getting all sorts of errors, two of which are below: Does anyone have a working sample of WHDG with EnableDataViewState="true" ? Is there anything we are missing?

2. When RowUpdate event is fired, it causes additional column to appear and changes the heading of the grid. Does WHDG require the datasource to be bound on row update as well?

Thanks!

Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.  Source : System.Web  Help link :   ParamName :   Data : System.Collections.ListDictionaryInternal  TargetSite : Void ValidateEvent(System.String, System.String)  Stack Trace :    at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)     at System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)     at System.Web.UI.WebControls.DropDownList.LoadPostData(String postDataKey, NameValueCollection postCollection)     at System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)     at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)   

Multiple controls with the same ID 'it3_0' were found. FindControl requires that controls have unique IDs.  Source : System.Web  Help link :   ErrorCode : -2147467259  Data : System.Collections.ListDictionaryInternal  TargetSite : Void FillNamedControlsTable(System.Web.UI.Control, System.Web.UI.ControlCollection)  Stack Trace :    at System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls)     at System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls)     at System.Web.UI.Control.EnsureNamedControlsTable()     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)     at System.Web.UI.Page.FindControl(String id)     at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)   

Parents
  • 935
    posted

    Hi All,

    An update, the error with the 'Multiple controls with same ID' is no longer happening. However, the invalid postback or callback argument error is happening after a couple of tree selections i.e. we can select two or three entities in the treeview properly, but after that when a tree selection is made, we start getting the following error for both dropdown list and checkbox controls"

    We would appreciate any feedback from the Infragistics team or anyone else who has managed to successfully bind the grid only if not postback and use data view state all other times.

    Thanks,

    Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.  Source : System.Web  Help link :   ParamName :   Data : System.Collections.ListDictionaryInternal  TargetSite : Void ValidateEvent(System.String, System.String)  Stack Trace :    at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)     at System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)     at System.Web.UI.WebControls.DropDownList.LoadPostData(String postDataKey, NameValueCollection postCollection)     at System.Web.UI.WebControls.DropDownList.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection)     at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

     

Reply Children