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

InPlace Edit Mode Client Events

1 Answer 83 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Peter
Top achievements
Rank 1
Peter asked on 14 Apr 2015, 01:46 AM

The following code doesn't work - it doesn't cause the controls to fire their client-side events in edit mode - any thoughts?

 CS:

protected void rgRepricingApproval_ItemCreated(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridEditableItem && e.Item.IsInEditMode)
            {
                GridEditableItem item = (GridEditableItem)e.Item;
 
                GridEditManager editMan = item.EditManager;
                 
                GridNumericColumnEditor editorAgreedSellPrice = (GridNumericColumnEditor)editMan.GetColumnEditor("AgreedSellPrice");
                RadNumericTextBox txtAgreedSellPrice = editorAgreedSellPrice.NumericTextBox;
                txtAgreedSellPrice.ClientEvents.OnValueChanged += string.Format("return ToggleValues({0});", e.Item.ItemIndex);
 
                RadDropDownList rcbHibernate = (RadDropDownList)item.FindControl("ddlHibernateID");               
                rcbHibernate.OnClientSelectedIndexChanged += string.Format("return ToggleValues({0});", e.Item.ItemIndex);
 
                // ONLY THIS WORKS (non-Telerik)
                CheckBox chkIsError = (CheckBox)item.FindControl("chkIsError");
                chkIsError.Attributes["onchange"] += string.Format("return ToggleValues({0});", e.Item.ItemIndex);
            }           
        }

 

 ASPX:

 

<telerik:GridNumericColumn HeaderText="Agreed Sell Price" UniqueName="AgreedSellPrice" DataField="AgreedSellPrice" NumericType="Currency" DecimalDigits="3" ColumnEditorID="ceAgreedSellPrice">
                    <HeaderStyle Width="120px" />
                    <ItemStyle Width="120px" />
                </telerik:GridNumericColumn>               
                <telerik:GridTemplateColumn HeaderText="Hibernate Period" UniqueName="HibernateID" DataField="HibernateID" ConvertEmptyStringToNull="true">
                    <HeaderStyle Width="110px" CssClass="headerHibernate" />
                    <ItemStyle Width="110px" Height="50px" />
                    <ItemTemplate>
                        <asp:Label runat="server" ID="lblHibernate" Text='<%# Eval("Hibernate.HibernateText") %>' />
                    </ItemTemplate>
                    <EditItemTemplate>
                        <telerik:RadDropDownList runat="server" ID="ddlHibernateID" AppendDataBoundItems="true" DataSourceID="edsHibernate" DataValueField="HibernateID" DataTextField="HibernateText">
                            <Items>
                                <telerik:DropDownListItem Value="" Text="" />
                            </Items>
                        </telerik:RadDropDownList>
                    </EditItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn HeaderText="Error?" UniqueName="Error" AllowSorting="false" AllowFiltering="false">
                    <HeaderStyle Width="60px" CssClass="headerError" />
                    <ItemStyle Width="60px" HorizontalAlign="Center" />
                    <ItemTemplate>
                        <asp:CheckBox ID="chkIsError" runat="server" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn HeaderText="Error Reason" UniqueName="ErrorReason" DataField="ErrorReason">
                    <HeaderStyle Width="200px" CssClass="headerError" />
                    <ItemStyle Width="200px" />
                    <ItemTemplate>
                        <asp:TextBox ID="txtErrorReason" runat="server" TextMode="MultiLine" Columns="20" Rows="2" Enabled="false" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>

 All items are in edit mode:

 

protected void rgRepricingApproval_PreRender(object sender, EventArgs e)
        {
            for (int i = 0; i < rgRepricingApproval.MasterTableView.PageSize; i++)
            {
                rgRepricingApproval.EditIndexes.Add(i);
            }

            rgRepricingApproval.Rebind();
        }

1 Answer, 1 is accepted

Sort by
0
Viktor Tachev
Telerik team
answered on 14 Apr 2015, 01:42 PM
Hi Peter,

I tested similar scenario and there were JavaScript errors thrown on the client. After modifying the code a bit it started working as expected on my end.

Would you try to attach the client-side handlers like illustrated in the code snippet below and see how it works for you?

protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditableItem && e.Item.IsInEditMode)
    {
        GridEditableItem item = e.Item as GridEditableItem;
 
 
        RadDropDownList rcbHibernate = (RadDropDownList)item.FindControl("ddlHibernateID");
        rcbHibernate.OnClientSelectedIndexChanged = "function(sender, args) { ToggleValues(sender, args, " + e.Item.ItemIndex + "); }";
    }
}




Regards,
Viktor Tachev
Telerik
 

See What's Next in App Development. Register for TelerikNEXT.

 
Tags
Grid
Asked by
Peter
Top achievements
Rank 1
Answers by
Viktor Tachev
Telerik team
Share this question
or