Ir para conteúdo
Fórum Script Brasil
  • 0

Componente


olimpia

Pergunta

Bom dia

Vamos ver se consigo descrever o meu problema

Estou usando Visual Studio 2003, criei um novo projeto WebControlLibrary em c#,

dentro do projeto e criado um arquivo com o nome de WebCustomControl1.cs

substitui todo o codigo por este aqui

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.ComponentModel;

namespace ClientSideControls

{

/// <summary>

/// Summary description for ConfirmButton.

/// </summary>

[DefaultProperty("Text"),

ToolboxData("<{0}:ConfirmaButton runat=server></{0}:ConfirmaButton>")]

public class ConfirmaButton : Button

{

[bindable(true),

Category("Appearance"),

DefaultValue("")]

public string PopupMessage

{

get

{

// See if the item exists in the ViewState

object popupMessage = this.ViewState["PopupMessage"];

if (popupMessage != null)

return this.ViewState["PopupMessage"].ToString();

else

return "Confirma?";

}

set

{

// Assign the ViewState variable

ViewState["PopupMessage"] = value;

}

}

protected override void AddAttributesToRender(HtmlTextWriter writer)

{

base.AddAttributesToRender(writer);

string script = @"return confirm(""%%POPUP_MESSAGE%%"");";

script = script.Replace("%%POPUP_MESSAGE%%",

this.PopupMessage.Replace("\"", "\\\""));

writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script);

}

}

}

compilei ( crtl+sthif+c)" e beleza uma dll foi gerada na pasta bin deste projeto

Criei agora um projeto ASP .NET WebApplication , sendo que este já vem com um arquivo aspx, que é a pagina que vou usar

Fui até o Solution Explorer na pasta References, cliquei com o botão direito e selecionei a opção Add Reference...

Abriu uma tela Chamada "Add Reference"

Na primeira aba chamada ".Net" cliquei no botão "Browse..." e selecionei a dll que foi criada no projeto WebControlLibrary, aquela que esta na pasta bin do projeto que descrevi acima

beleza, voltando a tela "Add Reference" já aparece na grid mais abaixo "Selected Components" o nome da dll, cliquei no botão Ok e ela já foi adicionada como referencia do projeto

depois fui na aba ToolBox" do Visual Studio na gui Web Forms" cliquei com o botão direito e no menu escolhi a opção Add/Remove Items..."

Surgiu uma tela "Customize ToolBox" e na aba ".Net Framework Components" cliquei no botão "Browser..." e selecionei a dll, da mesma forma que fiz para adicionar em Reference

Ai ela já é adicionada no grid acima, como o chekbox selecionado, cliquei em "OK" e tudo beleza, tenho mais um componente na minha toolbox

Cliquei nele e arrastei para a pagina aspx, em suas propriedades tem uma opção chamada "PopupMessage" que já vem como default a mensagem "Confima?"

Clicando em "F5" para executar a pagina o resultado foi o um botao que quando clicado exibe um "confirm" ( tipo o alert , mas com o botão de Ok e Cancelar) com a mensagem Confirma?"

O que faz aparecer esta propriedade "PopupMessage" no componente é este codigo, que fica no arquivo cs do componente

public string PopupMessage

{

get

{

// See if the item exists in the ViewState

object popupMessage = this.ViewState["PopupMessage];

if (popupMessage != null)

return this.ViewState["PopupMessage"].ToString();

else

return "Confirma?";

}

set

{

// Assign the ViewState variable

ViewState["PopupMessage"] = value;

}

}

pude perceber que o retorno é uma string, o que faz o conteudo desta string aparecer em um confirm quando o botão é clicado e este codigo aqui

protected override void AddAttributesToRender(HtmlTextWriter writer)

{

base.AddAttributesToRender(writer);

string script = @"return confirm(""%%POPUP_MESSAGE%%"");";

script = script.Replace("%%POPUP_MESSAGE%%",

this.PopupMessage.Replace("\"", "\\\""));

writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script);

}

}

}

Ai que vem o meu problema, ao invés de ter uma propriedade do Componente que receba uma string, preciso ter uma que receba um DataSet

tentei desta forma

public DataSet DataSource

{

get

{

object DataSource = this.ViewState["DataSource];

if (DataSource != null)

return this.ViewState["DataSource"];

else

return null;

}

set

{

ViewState["DataSource"] = value;

}

}

Ou seja, criei uma propriedade chamada DataSource que recebera um DataSet

Mas quando compilo a dll surge o seguinte erro

Cannot implicitly convert type 'object' to 'System.Data.DataSet'

Como posso fazer para resolver este erro?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

obrigados a todos

deu certo meu amigo Leandro Macedo me passou a dica de como fazer, ficou assim

public DataSet DataSource

{

get

{

object DataSource = this.ViewState["DataSource"];

if (DataSource != null)

//return this.ViewState["DataSource"];

return (System.Data.DataSet)DataSource;

else

return null;

}

set

{

ViewState["DataSource"] = value;

}

}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...