Pq não aparecem o meu Asp.NetWebControl em modo de execução

14/07/2010

0

Olá pessoal criei um Asp.NetWebControl utilizando createchildcontrols no VS2008 e com leitura datareader da  base de dados SQLSERVER, como é mostrado abaixo   using System; using System.Data; using System.Data.SqlClient; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Configuration; using System.Diagnostics; namespace PubliqueBannerControl { [DefaultProperty("Text")] [ToolboxData("<:MeuAdsBannerControl runat=server></:MeuAdsBannerControl>")] public class MeuAdsBannerControl: WebControl { [Category("CategoriaBanner")] [DefaultValue("HOME")] [Description("Define a Categoria ou Zona que ser mostrado o Banner no Site:[HOME-Top, HOME-Botton, FullBanner, BotoBanner, etc.:]")] public string Categoria { get { String c = (String)ViewState["Categoria"]; return ((c == null) ? String.Empty : c); } set { ViewState["Categoria"] = value; } } [Category("Apontamento")] [DefaultValue("_blank")] [Description("Define o Modo como a URL ser Exibida, no vale para banners em Flash:[_blank, _parent, _search, _self, _top]")] public string Target { get { String T = (String)ViewState["Target"]; return ((T == null) ? String.Empty : T); } set { ViewState["Target"] = value; } } [Category("SqlConnection")] [DefaultValue("")] [Description("Digite Aqui o Nome da Conexo da Base Sql do Site")] public string NomeConexao { get { String con = (String)ViewState["NomeConexao"]; return ((con == null) ? String.Empty : con); } set { ViewState["NomeConexao"] = value; } } //Criando Variaveis para os Controles serem usados private HyperLink hplBanner; // private Literal LiteralFlash; protected override void CreateChildControls() { //Criando os Controles hplBanner = new HyperLink(); /// LiteralFlash = new Literal(); #region SqlDataBase if ((Categoria).Length > 0) { try { SqlConnection myConnection = default(SqlConnection); SqlCommand myCommand = default(SqlCommand); SqlDataReader myDataReader = default(SqlDataReader); myConnection = new SqlConnection(WebConfigurationManager.ConnectionStrings[String.Format("",NomeConexao)].ConnectionString); myCommand = new SqlCommand("NRCA_sp_Get_Random_Banner", myConnection); myCommand.CommandType = CommandType.StoredProcedure; SqlParameter parameterPage = new SqlParameter("@Category", SqlDbType.VarChar, 20); parameterPage.Value = Categoria; myCommand.Parameters.Add(parameterPage); myConnection.Open(); myDataReader = myCommand.ExecuteReader(); if (myDataReader.Read()) { //string PathSrc = myDataReader["Image_Src_Path"].ToString(); // string TipoExt; // RightLeft extensao = new RightLeft(); // TipoExt = extensao.Right(PathSrc, 3); hplBanner.ID = "hplBanner"; hplBanner.Height = Unit.Parse(myDataReader["Height"].ToString()); hplBanner.Width = Unit.Parse(myDataReader["Width"].ToString()); hplBanner.NavigateUrl = ("tracker/?Ad_Id=" + myDataReader["Ad_Id"].ToString()); hplBanner.Target = Target; hplBanner.ImageUrl = myDataReader["Image_Src_Path"].ToString(); hplBanner.ToolTip = myDataReader["Alt_Text"].ToString(); hplBanner.BorderStyle = BorderStyle.None; //adicionar os controles a coleao de child controls do Web Custom Control this.Controls.Add(hplBanner); this.ChildControlsCreated = true; } } catch (Exception exp) { Trace.Write(exp.ToString()); } } #endregion // this.Controls.Add(Rotulo); base.CreateChildControls(); EnsureChildControls(); //certificando-se de que os controles foram criados } } }   Só que a mesma quando executada em meu projeto aspnet ao qual o webcontrol foi inserido não mostra ou renderiza nada do controle hyperlink em execução.Gostaria de saber o que está faltando para corrigir neste meu control usando createchildcontrols e base de dados Fico no aguardo e desde já agradeço
Luiz Franco

Luiz Franco

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar