Terelik PostBack Lost All data and do any action.

4 posts, 0 answers
  1. Jorge
    Jorge avatar
    2 posts
    Member since:
    Nov 2013

    Posted 22 Nov 2013 Link to this post


    Hi guys!

    I have the following scenario .
    [
    I use RadControls for ASP.NET AJAX Q1 2012
    Visual Studio 2010
    C# & Asp
     
    ]

    1 Aspx
    5 User Controls
        UserControlCatalogo
        UserControlDetalle
        UserControlDetalleInterno1
        UserControlDetalleInterno2
        UserControlDetalleInterno3

    The aspx page contains a call to " UserControlCatalogo " contains a RadGrid with this data, choose "edit " or "new " in this open RadGrid PopUp containing at UserControlDetalle .

    The UserControlDetalle contains a set of RadTextBox and RadTabStrip ( tab panel ) which contains three tabs .

    Tab 1 -> contains UserControlDetalleInterno1
    Tab 2 -> contains UserControlDetalleInterno2
    Tab 3 -> contains UserControlDetalleInterno3

    UserControlDetalleInterno1 contains another RadGrid you want to do the following : By clicking on "new" or "edit " expands to display fields and add new data.

    The problem is that when I use the "edit" or "new" function from radgrid, the template is not opened to fill data only "flashes" the popup and the table does nothing * in debuging enters the post back , refresh bd updates, the radgrid  datasourse * ... and ends ... * if I remove "ObtenerDatos", the table does not appear *

    i cant add or edit my radgrid items :C

    UserControlDetalleInterno1 ASPCode (yes, other name)
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrdenServicioCU.ascx.cs"
        Inherits="Presentation.Web.Catalogos.Cat_Contratos.OrdenServicioCU" %>
    <telerik:RadGrid ID="rgOrdenServicio" runat="server" AllowMultiRowEdit="true" Visible="true"
        AllowPaging="True" GridLines="None" AllowAutomaticUpdates="true" AutoGenerateColumns="false"
        AllowAutomaticInserts="true" AllowAutomaticDeletes="true" AllowSorting="true">
        <MasterTableView CommandItemDisplay="Top" DataKeyNames="ID" NoMasterRecordsText="No hay datos a mostrar.">
            <PagerStyle Mode="NumericPages"></PagerStyle>
            <Columns>
                <telerik:GridEditCommandColumn ButtonType="ImageButton">
                </telerik:GridEditCommandColumn>
                <telerik:GridBoundColumn DataField="ID" HeaderText="ID" Visible="false">
                    <HeaderStyle Width="1px" />
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="OrdenServicio" HeaderText="Orden de Servicio"
                    ReadOnly="True">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="FechaInicio" DataType="System.DateTime" HeaderText="Fecha de Inicio"
                    SortExpression="FechaInicio" UniqueName="FechaInicio" DataFormatString="{0:D}">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="FechaTermino" DataType="System.DateTime" HeaderText="Fecha de Termino"
                    SortExpression="FechaTermino" UniqueName="FechaTermino" DataFormatString="{0:D}">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="MontoAsignado" DataType="System.Decimal" HeaderText="Monto Asignado"
                    SortExpression="MontoAsignado" UniqueName="MONTO_ASIGNADO">
                </telerik:GridBoundColumn>
                <telerik:GridButtonColumn CommandName="Delete" ButtonType="ImageButton">
                </telerik:GridButtonColumn>
            </Columns>
            <EditFormSettings EditFormType="Template">
                <EditColumn UniqueName="EditCommandColumn1">
                </EditColumn>
                <FormTemplate>
                    <table cellspacing="2" cellpadding="1" width="100%" border="0">
                        <tr style="visibility: hidden">
                            <td colspan="2">
                                <b>ID:
                                    <%# Eval("ID")%>
                                </b>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Orden de Servicio:
                            </td>
                            <td>
                                <asp:TextBox Width="200px" ID="TextBox1" runat="server" Text='<%# Bind("OrdenServicio") %>'></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Fecha de Inicio:
                            </td>
                            <td>
                                <asp:TextBox Width="200px" ID="TextBox2" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.FechaInicio" )%>'></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Fecha de Termino:
                            </td>
                            <td>
                                <asp:TextBox Width="200px" ID="TextBox3" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.FechaTermino" )%>'></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Monto Asignado:
                            </td>
                            <td>
                                <asp:TextBox Width="200px" ID="TextBox4" runat="server" Text='<%# DataBinder.Eval( Container, "DataItem.MontoAsignado" )%>'></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <asp:Button ID="Button1" runat="server" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
                                    CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'
                                    OnClick="btnInsertOrden_clic"></asp:Button>
                                <asp:Button ID="Button2" runat="server" Text="Cancel" CausesValidation="false" CommandName="Cancel">
                                </asp:Button>
                            </td>
                        </tr>
                    </table>
                </FormTemplate>
            </EditFormSettings>
        </MasterTableView>
    </telerik:RadGrid>

    UserControlDetalleInterno1.cs CodeBehind (yes, other name)
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using ServicesReferencesCore.CatalogoService;
    using Telerik.Web.UI;
     
    namespace Presentation.Web.Catalogos.Cat_Contratos
    {
        public partial class OrdenServicioCU : System.Web.UI.UserControl
        {
            CatalogoServiceClient CatClient = new CatalogoServiceClient();
            public ContratoDTO Contrato = new ContratoDTO();
            List<OrdenServicioDTO> lstOrdenServicio;
     
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Contrato.Id > 0)
                {
                    ObtenerDatos();
                    Session["contrato"] = Contrato;
                }
                else
                {
                    if (Session["contrato"] != null)
                        Contrato = Session["contrato"] as ContratoDTO;
                }
            }
     
            private void ObtenerDatos()
            {
                if (Contrato != null)
                {
                    if (Contrato.Id > 0)
                    {
                        CatClient = new CatalogoServiceClient();
     
                        lstOrdenServicio = new List<OrdenServicioDTO>();
                        lstOrdenServicio = CatClient.ObtenerOrdenServicioContrato(Contrato.Id);
     
                        rgOrdenServicio.DataSource = lstOrdenServicio;
                        rgOrdenServicio.DataBind();
                    }
                    else
                    {
                        lstOrdenServicio = new List<OrdenServicioDTO>();
                        rgOrdenServicio.DataSource = lstOrdenServicio;
                        rgOrdenServicio.DataBind();
                    }
                }
                else
                {
                    lstOrdenServicio = new List<OrdenServicioDTO>();
                    rgOrdenServicio.DataSource = lstOrdenServicio;
                    rgOrdenServicio.DataBind();
                }
            }
     
            #region Eventos
            protected void btnInsertOrden_clic(object sender, EventArgs e)
            {
                //codigo para guardar los datos en la bd
            }
            #endregion
        }
    }

    Thanks All!

    PD: im bad on english, but i try it n.nU
  2. Kostadin
    Admin
    Kostadin avatar
    1733 posts

    Posted 27 Nov 2013 Link to this post

    Hi Jorge,

    I noticed that you have use a simple data binding in your grid with the automatic CRUD operation which is not supported scenario. In order to use an automatic Insert/Update/Delete operation you have to use the advanced data binding. The aforementioned data binding topics elaborate more on the difference between the two methods and how to implement them into your project.

    Regards,
    Kostadin
    Telerik
    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 the blog feed now.
  3. Jorge
    Jorge avatar
    2 posts
    Member since:
    Nov 2013

    Posted 27 Nov 2013 Link to this post


    Hi! thanks for help!.

    i use OnNeedDataSource in my rad grid, but i cant open my item template for add/edit item button, do not do anything.

    I want to do something like this [picture attach] for Edit or Add ... but my popup only do a flash but no open my template
    .
    my new header grid 

    <telerik:RadGrid ID="rgOrdenServicio" runat="server" AllowMultiRowEdit="true" Visible="true"
        AllowPaging="True" GridLines="None" AllowAutomaticUpdates="true" AutoGenerateColumns="false"
        AllowAutomaticInserts="true" AllowAutomaticDeletes="true" AllowSorting="true"
        OnNeedDataSource="rgOrdenServicio_NeedDataSource">

    [ ... all code in the last post ]

    my new code behind

    public partial class OrdenServicioCU : System.Web.UI.UserControl
        {
            CatalogoServiceClient CatClient = new CatalogoServiceClient();
            public ContratoDTO Contrato = new ContratoDTO();
            List<OrdenServicioDTO> lstOrdenServicio;
     
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Contrato.Id > 0)
                {
                    Session["contrato"] = Contrato;
                }
                else
                {
                    if (Session["contrato"] != null)
                        Contrato = Session["contrato"] as ContratoDTO;
                }
            }
     
            private List<OrdenServicioDTO> ObtenerDatos()
            {
                lstOrdenServicio = new List<OrdenServicioDTO>();
     
                if (Contrato != null)
                {
                    if (Contrato.Id > 0)
                    {
                        CatClient = new CatalogoServiceClient();
     
                        //lstOrdenServicio = new List<OrdenServicioDTO>();
                        lstOrdenServicio = CatClient.ObtenerOrdenServicioContrato(Contrato.Id);
     
                        //rgOrdenServicio.DataSource = lstOrdenServicio;
                        //rgOrdenServicio.DataBind();
                    }
                }
                return lstOrdenServicio;
            }
     
            #region Eventos
            protected void btnInsertOrden_clic(object sender, EventArgs e)
            {
                //codigo para guardar los datos en la bd
            }
     
            protected void rgOrdenServicio_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
            {
                rgOrdenServicio.DataSource = ObtenerDatos();
            }
            #endregion
        }

    thank for helping me
  4. Kostadin
    Admin
    Kostadin avatar
    1733 posts

    Posted 02 Dec 2013 Link to this post

    Hi Jorge,

    As far as I can see your code looks correct. Could you please provide a small runnable sample in order to observe the issue further? Meanwhile I would recommend you to examine the following live demo which demonstrates how to implement an edit form template.

    Regards,
    Kostadin
    Telerik
    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 the blog feed now.
Back to Top