popular e trazer dados de um ascx(COntrol) através de um button click no aspx .net c#

alfinete

Power Member
Bom dia

estou a desenvolver em vs2022 framework4.8

  • tenho um control ascx apenas com um formulario sem qualquer botão dentro do controlo.
  • tenho um aspx em que chamo esse controlo , ao qual chama na perfeição
  • quero alterar os dados no controlo , e através de um botão no aspx (LnkGravar) traze-los para um objecto Dentro deste file.(no codigo pintado a azul)
estou a chamar os dados para o ascx através de FormView, mas se Houver uma forma mais Directe de o Fazer, agradecia que me ajudassem .

mas não estou a conseguir



CtrlDetPedido.ascx
_________________________________________
Código:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CtrlDetPedido.ascx.cs" Inherits="HipogestBackOffice.Controls.CtrlDetPedido" %>



            <div class="pt-3 pb-1 border-bottom border-secondary" runat="server">


                <div class="pt-3" runat="server">
                    <div class="container" runat="server">
                        <div class="row" runat="server">

                            <div class="col-md-2" runat="server">
                                <div class="form-group" runat="server">
                                    <label>Tipo de Pedido</label>
                                    <%--<%# Eval("DGerais.TipoPedido") %>'--%>
                                    <asp:TextBox runat="server" ID="TxtTipoPedido" Class="form-control" Text='<%# Eval("DGerais.TipoPedido") %>'></asp:TextBox>
                                </div>
                            </div>
                            <div class="col-md-3">
                                <div class="form-group">
                                    <label>Cliente</label>
                                    <input type="email" class="form-control">
                                </div>
                            </div>
                            <div class="col-md-3">
                                <div class="form-group">
                                    <label>Pedido por</label>
                                    <input type="email" class="form-control" placeholder="Portugal">
                                </div>
                            </div>
                            <div class="col-md-2">
                                <div class="form-group">
                                    <label>Data Criação Pedido</label>
                                    <input type="email" class="form-control" placeholder="2022-10-28 10:00">
                                </div>
                            </div>
                            <div class="col-md-2">
                                <div class="form-group">
                                    <label>Data Hora Serviço</label>
                                    <input type="email" class="form-control" placeholder="2022-11-07 12:00">
                                </div>
                            </div>

                        </div>
                    </div>
                </div>
            </div>


CtrlDetPedido.ascx.cs
___________________

Código:
using HIPOPT.BE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace HipogestBackOffice.Controls
{
    public partial class CtrlDetPedido : System.Web.UI.UserControl
    {
        public string TipoPedido
        {
            get
            {
                return TxtTipoPedido.Text;
            }
            set
            {
                if (TxtTipoPedido != null)
                    TxtTipoPedido.Text = value;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
           
        }






        public void setdata(DetailPedidosColapseBE Dados)
        {
          //  TxtTipoPedido.Text = Dados.TipoPedido;
        }


        public DetailPedidosColapseBE GetData()
        {
            DetailPedidosColapseBE Dados = new DetailPedidosColapseBE();

            //quando instacio este objecto ele dis-me  sempre  que o TxtTipoPedido está Nulo
            Dados.TipoPedido = TxtTipoPedido.Text;

            return Dados;
        }
    }
}




DetPedidosTabNotas.aspx
___________________________________________________
Código:
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/BackOffice.Home.Master" AutoEventWireup="true" CodeBehind="DetPedidosTabNotas.aspx.cs" Inherits="HipogestBackOffice.Forms.Detalhes.DetPedidosTabNotas" %>


<asp:Content ID="CtxDetPedidoTabsNotas" ContentPlaceHolderID="CphBackOfficeHome" runat="server">
    <%@ Register Src="~/Controls/CtrlDetPedido.ascx" TagPrefix="uc1" TagName="CtrlDetPedido" %>

    <div class="container mt-2">
        <div class="row">
            <div class="panel-group">
                <div class="panel panel-default">
                    <div class="panel-heading shadow bg-white">
                        <h4 class="panel-title fontoriginal" style="padding: 8px 0px 0px 8px;">
                            <a data-toggle="collapse" href="#collapse1" style="font-size: 14px;">Ver Detalhe</a>
                        </h4>
                    </div>
                    <div id="collapse1" style="width: 100% !important; overflow: visible !important; height: auto !important; border: 1px solid #dee2e6;" class="panel-collapse collapse">
                        <div class="panel-body pl-2 pr-2" runat="server" id="Dvdetalhe" style="overflow: visible !important; height: auto !important;">

                            <div class="row">
                                <asp:FormView ID="FrmViewDetpedido" runat="server">
                                    <ItemTemplate>
                                         <uc1:CtrlDetPedido runat="server" ID="ControlDetPedido" ClientIDMode="Static"/>
                                    </ItemTemplate>
                                </asp:FormView>

                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    </div>




    <div class="border-top pt-3 pb-3">
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                     <a class="btn text-white btn-lg btn-success" runat="server" id="LnkGravar" onserverclick="LnkGravar_ServerClick">Gravar</a>

                </div>
                <div class="text-right col-md-6">
                    <a class="btn btn-info btn-lg text-white" runat="server" onserverclick="RedirectPageBack_ServerClick" id="LnkCancelar">Cancelar</a>
                </div>
            </div>
        </div>
    </div>
</asp:Content>




DetPedidosTabNotas.aspx.cs
___________________________________________________
Código:
using HipogestBackOffice.Classes;
using HipogestBackOffice.Controls;
using HIPOPT.BE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using static System.Net.WebRequestMethods;

namespace HipogestBackOffice.Forms.Detalhes
{
    public partial class DetPedidosTabNotas : System.Web.UI.Page
    {

        private CtrlDetPedido DetPedido { get; set; }
        private int IdType = 0;

        protected void Page_init(object sender, EventArgs e)
        {

            //if (!Page.IsPostBack)
            //{
            //    UserControl uc = (UserControl)Page.LoadControl("~/Controls/CtrlDetPedido.ascx");

            //    DetPedido = new CtrlDetPedido();

            //    PHControlDetailColapse.Controls.Add(uc);


            //}
         }

        protected void Page_Load(object sender, EventArgs e)
        {
            AddServerClickbuttonsLnks();
          
            if (!Page.IsPostBack)
            {
                List<DetalhePedidos> lstDet = GetSaveData.GetDetailPedido(1);
                DetPedido = new CtrlDetPedido();
             
                FrmViewDetpedido.DataSource = lstDet;
                FrmViewDetpedido.DataBind();

                
             

            }

        }
       
        protected void RedirectPageBack_ServerClick(object sender, EventArgs e)
       

        private void AddServerClickbuttonsLnks()
        {

           
            LnkGravar.ServerClick += new EventHandler(LnkGravar_ServerClick);

            
        }

        protected void LnkGravar_ServerClick(object sender, EventArgs e)
        {
             DetPedido = new CtrlDetPedido();

             DetailPedidosColapseBE Dados = DetPedido.GetData();



        }
    }
}
 
Back
Topo