Fórum Trabalhando com o WebUser Control #14431
22/01/2010
0
Nas minhas aplicações, algumas vezes preciso trabalhar com vários sistemas em uma mesma Página Web, normalemnte para realizar pesquisas em várias tabelas e trazer resultados,
por exemplo como um cadastro de pedido,
é necessário o Cliente, o Vendedor, os Produtos.
o WebUserControl resolve este meu problema??? ele evita vários POSTBACK nas páginas??
minha maior dúvida na tentativa que fiz foi o seguinte?
Como conseguir enviar um código ( ou campo determinado) para o WebUser Control?
Como conseguir que esta página que enviou o Campo receba o resultado determinado do User Control ( como uma linha de grid por exemplo?
Fernando Reis
Curtir tópico
+ 0Posts
22/01/2010
Luiz Maia
{
string Valor { get; set; }
} Implemente a interface no seu ASCX:
public partial class Dados : System.Web.UI.UserControl, IDados
{
public string Valor
{
get
{
return this.Label1.Text;
}
set
{
this.Label1.Text = value;
}
}
}
Na sua página ASPX, faz:
protected void Page_Load(object sender, EventArgs e)
{
Control ctl = LoadControl("Dados.ascx");
IDados d = ctl as IDados;
if (d != null)
d.Valor = "Israel"; this.Controls.Add(ctl);
} Outra mais facil é criar uma Propriedade (get set) e jogar o valor dentro desta propriedade. Outra forma é passar o parametro explicitamente via querystring. Abraços Att Luiz MAia
Gostei + 0
22/01/2010
Fernando Reis
Apanhei feio!! kkkkk
veja só quero criar uma Consulta de empresa e assim poder usar esta em várias páginas ok?
se manda por querystring, tenho que definir em todo o momento o nome das páginas.
por isto pensei em referenciar um campo da pagina aspx e retornar o valor do select feito no ascx.
Veja até onde cheguei em um exemplo vem simples:
default.aspx:
HTML
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="~/uc_Company.ascx" TagName="FindCompany" TagPrefix="uc1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
Company :
<asp:TextBox ID="txtCompany" runat="server"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" Height="17px"
ImageUrl="~/viewmag+.png" Width="19px" />
<asp:Panel ID="Panel1" runat="server">
<uc1:FindCompany ID="find1" runat="server" />
</asp:Panel>
</div>
</form>
</body>
</html>
code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Control ctl = LoadControl("uc_Company.ascx");
IDados d = ctl as IDados; (aqui ele não encontra o IDados)
if (d != null)
d.Valor = "Israel";
this.Controls.Add(ctl);
}
}
uc_Company.ascx
HTML
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="uc_Company.ascx.cs" Inherits="uc_Company" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="CustomerID" DataSourceID="dsCompany">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True"
SortExpression="CustomerID" />
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName"
SortExpression="CompanyName" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="dsCompany" runat="server"
ConnectionString="<%$ ConnectionStrings:csNorthWind %>"
SelectCommand="SELECT [CustomerID], [CompanyName] FROM [Customers]">
</asp:SqlDataSource>
CODE:
(DE ACORDO COM O EXEMPLO QUE ME MANDOU, MAS NÃO SEI SE ESTA CORRETO)
public interface IDados ( ESTA PARTE TEM QUE IR EM LOCAL SEPARADO?)
{
string Valor { get; set; }
}
public partial class uc_Company : System.Web.UI.UserControl,IDados
{
public string Valor
{
get
{
return this.GridView1.SelectedRow.Cells[1].Text.ToString();
}
set
{
this..GridView1.SelectedRow.Cells[1].Text.ToString() = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
Quero muito enteder o conceito de enviar e receber os parâmetros pois acredito ser mais fácil sua utilização,
Obrigado pela ajuda,
no Seu Aguardo!
Gostei + 0
25/01/2010
Luiz Maia
Gostei + 0
27/01/2010
Fernando Reis
Não se esqueça de mim, ok
kk
Gostei + 0
27/01/2010
Luiz Maia
Gostei + 0
27/01/2010
Fernando Reis
Desculpe, mas não é o que preciso,
Acredito não ter me expressado bem.
Voce tem um banco northwind??? posso postar um exemplo bem simples??
Gostei + 0
27/01/2010
Luiz Maia
Gostei + 0
27/01/2010
Fernando Reis
Gostei + 0
27/01/2010
Fernando Reis
Coloquei um exemplo utilizado o ModalPopUpExtender,
oque eu quero fazer é o mesmo exemplo, só que invés de usar o Panel e o próprio Modal, quero transformar este em WebUserControl,
Motivo: esta "pesquisa de empresa" vou precisar usar em outras páginas onde o resultado será a retorno do campo "EMPRESA".
Obrigado,
link: http://video.devmedia.com.br/discovirtual/175404/WebUser/WebUserControl-I.zip
Gostei + 0
28/01/2010
Luiz Maia
Gostei + 0
31/01/2010
Luiz Maia
Abraços
Att
Luiz Maia
Gostei + 0
01/02/2010
Fernando Reis
Grato
Gostei + 0
04/02/2010
Luiz Maia
Gostei + 0
18/02/2010
Luiz Maia
Gostei + 0
02/03/2010
Luiz Maia
Luiz Maia
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)