User Profile & Activity

Yudi Member
Page
of 259

Sorry for the delay in sending this.

Per your information, I tried to reproduce the reported problem in my local end by viewing SelfReferencingGrid.aspx sample file of WebGrid in IE 10 with compatibility mode but my efforts were not successful - the page is rendered without any issues and the column header align with the data column.

I'm using WebGrid 9 build 4 and WebUI.NET Framework 3.0 build 916.

Deeply apologize for the delay in sending this.

Or have you found any other solutions? I need to deliver this to a customer shortly.

Yes, I have another solutions. The idea is: simply have the self-reference row to collapsed again. I found that this idea can be implemented in OnAfterResponseProcess client-side event.

Add following JavaScript function and register WebGrid1_OnAfterResponseProcess function to the grid's OnAfterResponseProcess client-side event.

<script type="text/javascript">
    function WebGrid1_OnAfterResponseProcess(controlId, actionName, lastRequestObject, xmlResponseObject)
    {
        var grid = ISGetObject("WebGrid1");
            
        if (actionName=="UpdateRow")
            grid.GetSelectedObject().ToRowObject().CollapseSelfRefRow();

        return true;
    }
</script>
    
<ISWebGrid:WebGrid ID="WebGrid1" runat="server" ...>
    <LayoutSettings ...>
        <ClientSideEvents OnAfterResponseProcess="WebGrid1_OnAfterResponseProcess" />
    </LayoutSettings>
    ...
</ISWebGrid:WebGrid>

Hope this helps.

Apologize for the delay in sending this.

I would assume row.Update() would trigger the server side event

I created a simple sample of WebGrid. The grid has OnAddRow, OnDeleteRow, OnInitializeDataSource, and OnUpdateRow event handlers which will handles the query of add, delete, select, and update respectively.

Within the page, a button is added. This button will do the following:

  1. Select the first row of grid's root table.
  2. Edit the cells of selected row.
  3. Update the changes by invoking Update() method.

The whole action is done using onclick of the button (see snippet code below).

<input id="button1" type="button" value="Select First Row and Update" onclick="EditFirstRow()" />

<script type="text/javascript">
    function EditFirstRow()
    {
        var grid = ISGetObject("WebGrid1");
        var row = grid.RootTable.GetRow(0); // get the first row in RootTable
        var cells = row.GetCells(); // get WebGridCell collection

        row.Select(); // select the row

        // populate new row object     
        cells.GetNamedItem("CustomerID").SetText("INTER", true);
        cells.GetNamedItem("CompanyName").SetText("Intersoft Solutions", true);
        ...

        row.Update(); // insert new record

        return true;
    }
</script>

Update() method will invoke OnUpdateRow event at the server side. I enclosed my simple sample for your reference.

Please have the sample evaluated on your end and let me know if you have different result.

I haven't heard any news from the team regarding ASPNET-173. The hotfix of the reported problem is expected to be available after the release of 2015 R1.

I'll keep this thread updated when the nightly build is ready to be evaluated.

Posted: June 24, 2015 3:03 AM

This problem doesn't deals with WebGrid control. It is simply about layout using html and css.

Let's focus on the OpsCreate.aspx page. This page has a header and content. In the header, I add the Refresh and Create button. WebGrid will be added in the content area.

First, I wrap the header in a div element and define the style as follow.

div#header
{
    top: 0px;
    left: 0px;
    right: 0px;
    height: 40px;
    position: absolute;
}

<div id="header">
    <table class="style1" style="background-color: #bad3f5;
        vertical-align: middle; text-align: center; height: 40px">
        <tr>
            <td>
                <input id="RefreshCtrl" type="button" value="Refresh"
                    onclick="OnRefresh()" style="width: 80px" />
            </td>
            <td>
                <input id="CreateCtrl" type="button" value="Create"
                    onclick="OnCreate()" style="width: 80px" />
            </td>
        </tr>
    </table>
</div>

Next, add another div as the container for content. The height of this div is 100% minus the height of header. The snippet below shows how to do this using css.

div#content
{
    top: 40px;
    left: 0px;
    right: 0px;
    bottom: 0px;
    position: absolute;
}

<div id="content">
    <div style="position: relative; height: 100%; overflow: hidden;">
        <ISWebGrid:WebGrid ID="GridCtrl" runat="server"
            Width="100%" Height="100%" UseDefaultStyle="True"
            RenderingMode="HTML5" DataSourceID="AccessDataSource1">
            ...
        </ISWebGrid:WebGrid>
    </div>
</div>

I enclosed the modified version of OpsCreate.aspx page for reference. By applying the above snippet code, your requirement - to show pager in WebGrid - now works.

This should helps.

Posted: June 19, 2015 8:00 AM

I modified the unbound grid in OpsCreate.aspx page and bind it to Customers table of Northwind. The grid now has 91 rows. Next, simply enable paging feature and the pager is rendered without any issues on browser.

Screenshot:

Please let me know if you have different result.

The hotfix for CROS-580 is available in Crosslight which will be released soon. I have tested the VisibilityBinding attribute using Crosslight 4 assembly and found that it works as expected.

Hope this helps.

Posted: June 19, 2015 3:32 AM
Do you have a document which would give the old and new syntax?

I found these two articles in WebGrid documentation:

One example is the client side JavaScript code "wgPrepareUpdateRow"

Unfortunately, I can't help you by informing the new client-side API of wgPrepareUpdateRow. Could you please inform me about the usage of this method? or provide a simple sample which uses this method? Maybe I can start from this point to find the current one.

I tried to reproduce the reported problem in my local end by viewing BasicInteraction.aspx sample file of WebGrid in IE 10 with compatibility mode but my efforts were not successful - the page is rendered without any issues and the column header align with the data column.

Please feel free to let me know if there is anything that I might miss during my attempt to replicate the problem.

Posted: June 18, 2015 3:24 AM

Thank you for the attached image which pointing the ISRes problem. The call to ISRes.axs with 404 persist because WebGrid's default style already use ISRes. In order to avoid ISRes completely, it is suggested to re-define the style.

Hope this helps.

All times are GMT -5. The time now is 2:43 AM.
Previous Next