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

[Solved] ForeignKey Column

0 Answers 62 Views
Grid
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Jorge
Top achievements
Rank 1
Jorge asked on 27 Jun 2012, 04:56 PM
I have a grid column that want to use it as a ForeignKey but when the page loads the foreignkey column just displays nothing, and when the edit button is clicked the combobox appears in another column.

My View
@model HEB.HEBanco.EFDAL.Entity.prueba
@{
    Layout = "~/Views/Shared/HEBKiosko_Vista_1.cshtml";
    ViewBag.Title = "Parametria";
    HEB.HEBanco.BusinessLayer.Perfil perfil = new HEB.HEBanco.BusinessLayer.Perfil();
    string nombreUsuario = perfil.GetNombre(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1));
 
    HEB.HEBanco.BusinessLayer.ReciboNominaPines pines = new HEB.HEBanco.BusinessLayer.ReciboNominaPines();
    List<HEB.HEBanco.EFDAL.Entity.ReciboNominaPinesEFDAL> PinListPercepciones = pines.ObtieneReciboNominaPines("P");
    List<HEB.HEBanco.EFDAL.Entity.ReciboNominaPinesEFDAL> PinListDeducciones = pines.ObtieneReciboNominaPines("D");
    List<HEB.HEBanco.EFDAL.Entity.ReciboNominaPinesEFDAL> PinListImpuestos = pines.ObtieneReciboNominaPines("I");
    GridPagerStyles pagerStyles = GridPagerStyles.NextPreviousAndNumeric;
    var position = GridPagerPosition.Bottom;
    var currentPage = 1;
 
    pagerStyles |= GridPagerStyles.PageInput;
    pagerStyles |= GridPagerStyles.NextPrevious;
    pagerStyles |= GridPagerStyles.Numeric;
    pagerStyles |= GridPagerStyles.PageSizeDropDown;
}
<html>
<head>
    <style type="text/css">
        .gridLetra
        {
            color: #980808;
            font-family: Arial;
            font-size: 12px;
        }
    </style>
    <script type="text/javascript">
 
        function Guardar(e) {
            var valores = e.values;
        }
 
        function Editar(e) {
            //alert('b');
            var grid = $('#' + e.currentTarget.id).data('tGrid');
            //alert(grid.columns[1].title);
        }
 
        function RefreshGridCatorcenas() {
            //alert('p');
            var grid = $('#GridComentarios').data('tGrid');
 
            // grid.rebind();
        }
 
        //if (grid.columns[1].title == "Concepto1" && e.mode == "edit") {
 
        //grid.columns[1].Visible(true);
        //alert('a');
        //}
 
        function Regresar() {
            window.location = "/ReciboNomina/CatorcenasConsultar"
        }
    </script>
</head>
<body>
    <center>
        <p>
            Administración</p>
    </center>
    <p>
        Percepciones</p>
    @(Html.Telerik().Grid(Model.ReciboNominaParametrosPercepciones)
        .Name("GridPercepciones")
        .Localizable("es-ES")
        .ClientEvents(events => events.OnSave("Guardar").OnEdit("Editar"))
        .Editable(editing => editing.Mode(GridEditMode.InLine))
                     .Sortable(sort => sort.OrderBy(order => order.Add(data => data.PIN)))
                            .Scrollable(scroll => scroll.Height("282px"))
                            .Filterable()
                            .Resizable(resizing => resizing.Columns(true))
                            .Reorderable(reorder => reorder.Columns(true))
                            .ToolBar(commands => commands.Insert())
        .Pageable(paging => paging
                    .Style(pagerStyles)
                    .Position(position)
                    .PageTo(currentPage)
                    .PageSize(10, new[] { 5, 10, 15, 20, 25 }))
        .DataBinding(dataBinding => dataBinding
                        .Ajax()
                        .Select("_ListParametersPercepciones", "ReciboNomina")
                        .Insert("_InsertParametersPercepciones", "ReciboNomina")
                        .Update("_UpdateParametersPercepciones", "ReciboNomina")
                        .Delete("_DeleteParametersPercepciones", "ReciboNomina")
                    )
              .HtmlAttributes(new { @class = "gridLetra" })
 
        .DataKeys(keys =>
        {
            keys.Add(data => data.PIN_NUM);
        }
                )
        .Columns(columns =>
        {
 
 
            columns.ForeignKey(data => data.PIN, new SelectList(PinListPercepciones, "PIN_NUM", "PIN"))
            .Title("Concepto")
            .Width(150);
 
 
            columns.Bound(data => data.PIN)
            .Title("Concepto").Width(200)
           .ReadOnly(true);
 
            columns.Bound(data => data.SUMA)
            .ClientTemplate("<center><input type='checkbox' disabled='disabled' name='Suma' <#=SUMA? checked='checked' : '' #> /></center>")
            .Template(@<text>
            <input name="checkedRecords" type="checkbox" value="@item.SUMA " disabled title="checkedRecords"
                                        @if (item.SUMA = true)
                                        {
                                            <text>checked="checked"</text>
                                        }   />
            </text>)
            .Title("Suma")
            .Width(36)
            .HtmlAttributes(new { style = "text-align:center" });
 
            columns.Command(commands =>
            {
                commands.Edit();
                commands.Delete();
            }).Width(180);
        }
                )
    )
 
    <center>
        <table>
            <tr>
                <td>
                </td>
                <td align="center">
                    <input type="button" name="cmdRegresar" value="Regresar" onclick="Regresar()" />
                </td>
                <td align="center">
                    <input type="button" name="cmdImprimir" value="Imprimir" />
                </td>
            </tr>
        </table>
    </center>
    <form id="frmAdministracion">
    </form>
    @(Html.Telerik().ScriptRegistrar().Globalization(false).DefaultGroup(group => group.Combined(true).Compress(true)))
</body>
</html>

My Controller
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using HEB.HEBanco.BusinessLayer;
using HEB.HEBanco.EFDAL.Entity;
using Telerik.Web.Mvc;
 
       #region Parametros Percepciones
 
        [GridAction]
        public ActionResult _ListParametersPercepciones(string CONCEPTO = "P")
        {
            ReciboNominaParametrosPercepciones A = new ReciboNominaParametrosPercepciones();
             
            //var model = new prueba();
            //model.ReciboNominaParametrosPercepciones = A.ObtieneParametrosReciboNomina("P");
            //ViewData["total"] = model.ReciboNominaParametrosPercepciones.Count();
            //ReciboNominaParametrosPercepciones A = new ReciboNominaParametrosPercepciones();
            return View(new GridModel<ReciboNominaParametrosEFDAL>
            {
                Data = A.ObtieneParametrosReciboNomina(CONCEPTO)
            });
        }
 
 
        [AcceptVerbs(HttpVerbs.Post)]
        [GridAction]
        public ActionResult _UpdateParametersPercepciones(string PIN_NUM, string SUMA)
        {
 
            ReciboNominaParametrosPercepciones param = new ReciboNominaParametrosPercepciones();
 
            param.UpdateParametro(PIN_NUM, SUMA);
 
            return View(new GridModel<ReciboNominaParametrosEFDAL>
            {
                Data = param.ObtieneParametrosReciboNomina("P")
            });
        }
 
        [AcceptVerbs(HttpVerbs.Post)]
        [GridAction]
        public ActionResult _InsertParametersPercepciones(string PIN_NUM, string SUMA)
        {
            ReciboNominaParametrosPercepciones param = new ReciboNominaParametrosPercepciones();
 
            param.InsertParametro(PIN_NUM, SUMA);
 
            return View(new GridModel<ReciboNominaParametrosEFDAL>
            {
                Data = param.ObtieneParametrosReciboNomina("P")
            });
        }
 
        [AcceptVerbs(HttpVerbs.Post)]
        [GridAction]
        public ActionResult _DeleteParametersPercepciones(string ID)
        {
            ReciboNominaParametrosPercepciones param = new ReciboNominaParametrosPercepciones();
 
            param.DeleteParametro(ID);
 
            return View(new GridModel<ReciboNominaParametrosEFDAL>
            {
                Data = param.ObtieneParametrosReciboNomina("P")
            });
        }
 
        #endregion

My ReciboNominaParametrosPercepciones Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HEB.HEBanco.EFDAL;
using HEB.HEBanco.EFDAL.Entity;
 
namespace HEB.HEBanco.BusinessLayer
{
    public class ReciboNominaParametrosPercepciones
    {
        public List<ReciboNominaParametrosEFDAL> ObtieneParametrosReciboNomina(string CONCEPTO)
        {
            using (var context = new HEBancoEntities())
            {
                var Parametros = new object[] { CONCEPTO };
                var Parametross = context.ExecuteStoreQuery<ReciboNominaParametrosEFDAL>("exec dbo.SPSEL_PARAMETROS_RECIBO_NOMINA @p0", Parametros);
                var ParametrosResultado = new List<ReciboNominaParametrosEFDAL>();
                foreach (ReciboNominaParametrosEFDAL X in Parametross)
                {
                    ParametrosResultado.Add(X);
                }
                return ParametrosResultado;
            }
        }
    }
}


My ReciboNominaParametrosEFDAL entity
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace HEB.HEBanco.EFDAL.Entity
{
    public class ReciboNominaParametrosEFDAL
    {
        public  virtual string  PIN { get; set; }
        public  virtual bool    SUMA{get;set;}
        public  virtual int     PIN_NUM { get; set; }
    }
}
Tags
Grid
Asked by
Jorge
Top achievements
Rank 1
Share this question
or