This is a migrated thread and some comments may be shown as answers.

IE, Opera does one thing-Safari,Firefox and Chrome another

1 Answer 50 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Elliott
Top achievements
Rank 2
Elliott asked on 12 Dec 2011, 08:50 PM
this grid is read-only except for a single column - cases
when anywhere on the grid is clicked the Cases column of the row clicked opens for update
if the grid is clicked again
    IE and Opera update the column, then open the Cases column of the new row clicked
    Firefox, Chrome and Safari update the column but the new row is not put in Edit Mode
<body onbeforeprint="return window_onbeforeprint()" onafterprint="return window_onafterprint()">
    <form id="frmEditOrderNew" method="post" runat="server">
    <telerik:RadCodeBlock ID="rcBlock" runat="server">
    <script type="text/javascript">
    <!--
        function RowDblClick(sender, eventArgs) {
            idx = eventArgs.get_itemIndexHierarchical();
            sender.get_masterTableView().editItem(idx);
        }
        function RowClick(sender, eventArgs) {
            idx = eventArgs.get_itemIndexHierarchical();
            sender.get_masterTableView().editItem(idx);
        }
        function RowDataBound(sender, args) {
            var obj = args.get_dataItem();
            var obje = args.get_item();
        }
    -->
    </script>
    </telerik:RadCodeBlock>
.....
 
<telerik:RadGrid ID="rgEditOrder" OnNeedDataSource="rgEditOrder_NeedDataSource" OnItemCommand="rgEditOrder_ItemCommand" ShowFooter="True" Skin="Sunset" runat="server">
        <GroupingSettings CaseSensitive="false" />
        <MasterTableView DataKeyNames="OrderSeq" AutoGenerateColumns="false" AllowSorting="true" AllowPaging="true" AllowFilteringByColumn="False" EditMode="InPlace" >
        <Columns>
            <telerik:GridBoundColumn UniqueName="StoreNumber" DataField="StoreNumber" HeaderText="Store #" DataFormatString="{0:#####}" DataType="System.Int32" Aggregate="None" ReadOnly="True">
                <HeaderStyle Width="36px" />
            </telerik:GridBoundColumn>
           
             more columns
 
            <telerik:GridTemplateColumn UniqueName="Qty" HeaderText="Cases" DataField="Qty" DataType="System.Int32" Aggregate="Sum" >
                <ItemTemplate>
                    <asp:Label ID="lblQty" Text='<%# Bind("Qty") %>' Width="32px" runat="server" />
                </ItemTemplate>
                <EditItemTemplate>
                    <telerik:RadNumericTextBox ID="rntbQty" DBValue='<%# Eval("Qty") %>' OnTextChanged="rntbQty_TextChanged" MinValue="0" MaxValue="99999" MaxLength="5" AutoPostBack="True" Width="32px" runat="server">
                    <NumberFormat DecimalDigits="0" GroupSeparator="" />
                    </telerik:RadNumericTextBox>
                </EditItemTemplate>
                <HeaderStyle Width="32px" />
            </telerik:GridTemplateColumn>
 
             more columns
 
            <telerik:GridBoundColumn UniqueName="OrderSeq" DataField="OrderSeq" DataType="System.Int64" Visible="false">
            </telerik:GridBoundColumn>
        </Columns>
        </MasterTableView>
        <ClientSettings>
            <ClientEvents OnRowDblClick="RowDblClick" />
            <ClientEvents OnRowClick="RowClick" />
            <ClientEvents OnRowDataBound="RowDataBound" />
        </ClientSettings>
        </telerik:RadGrid>

code behind
protected void rntbQty_TextChanged(object sender, EventArgs e)
{
    RadNumericTextBox rntbQty;
    GridDataItem gdItem;
    GridEditableItem geItem;
    DateTime ShipDate;
    int Qty, iBooth, iPage, iConsolid;
    double fStore, dVendor, dItemID, dNetCost;
    string[] strDel = new string[1];
    double[] dQty = new double[1];
    WsOrderSystem wsOrder;
    bool bUpdate = false;
 
    rntbQty = (RadNumericTextBox)sender;
    gdItem = rntbQty.NamingContainer as GridDataItem;
    geItem = rntbQty.NamingContainer as GridEditableItem;
    Qty = Convert.ToInt32(rntbQty.Value);
    fStore = Convert.ToDouble(ExtractValue(geItem, "StoreNumber"));
 
    kode
 
    wsOrder = new WsOrderSystem();
    bUpdate = wsOrder.AddToOrder(fStore, iBooth, iPage, dVendor, dNetCost, dItemID, strDel, dQty, true, iConsolid);
    geItem.Edit = false;
    rgEditOrder.MasterTableView.Rebind();
}

1 Answer, 1 is accepted

Sort by
0
Marin
Telerik team
answered on 15 Dec 2011, 09:58 AM
Hello Marianne,

 In this case both actions - putting a row in edit mode and updating the value on textChanged require a postback to the server. Normally you cannot make two postbacks (going in edit mode and updating a value) with only a single request to the server. That's why in most browsers this approach does not work and only the second postback (firing of the textChanged event) is executed. The recommended approach in this case would be to separate the two actions in different events for example: going in edit mode from RowDblClick and updating values from the RowClick event as shown in this online demo.

All the best,
Marin
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now
Tags
Grid
Asked by
Elliott
Top achievements
Rank 2
Answers by
Marin
Telerik team
Share this question
or