Marcelo Ramos

Desenvolvimento em .NET, Banco de Dados e Tecnologia em Geral

Invoke or BeginInvoke cannot be called on a control until the window handle has been created

Ao tentar instalar o SQL Server 2008 Express em uma máquina com Windows 7, me retornou o seguinte erro :

“Invoke or BeginInvoke cannot be called on a control until the window handle has been created.”

Para contornar, basta executar a instalação novamente

Mais detalhes em :
http://blogs.msdn.com/petersad/archive/2009/08/14/invoke-or-begininvoke-cannot-be-called-on-a-control-until-the-window-handle-has-been-created.aspx 

[]s

Posted: ago 25 2009, 22:03 by marcelo | Comentários (8) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: SQL

Highlighting Map Areas

Para dar um efeito de brilho ao passar o mouse sobre Map Areas, você pode usar a biblioteca Mapper.js
A implementação é bem simples e com pouquissimo codigo já temos um exemplo funcional

http://www.netzgesta.de/mapper/
http://ajaxian.com/archives/mapperjs-10-highlighting-for-imagemaps

Um exemplo da utilidade é usar em conjunto com o Chart Controls, para destacar cada area do gráfico ao passarmos ou mouse sobre elas

[]s

Posted: ago 02 2009, 15:08 by marcelo | Comentários (30) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Gráficos no ASP.NET com Microsoft Chart Controls

O uso de gráficos em aplicações web se tornou cada vez mais comum. Temos várias opções pagas no mercado, e desde o fim do ano passado a Microsoft disponibilizou seu recurso de representação gráfica para WindowsForms e WebForms, o Microsoft Chart Controls. A primeira e mais óbvia vantagem é o custo zero, o Chart Controls é de graça e pode ser baixado nos links abaixo :

Microsoft Chart Controls for Microsoft .NET Framework 3.5
http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en

Microsoft Chart Controls Add-on for Microsoft Visual Studio 2008
http://www.microsoft.com/downloads/details.aspx?familyid=1D69CE13-E1E5-4315-825C-F14D33A303E9&displaylang=en

A outra vantagem que vejo é a simplicidade de uso, depois de instalado, basta arrastá-lo da Toolbox do Visual Studio e com poucas linhas de código já se tem resultado.

Vamos ver um simples exemplo, representando vendedores e o total de vendas de cada um deles.

Abra o Visual Studio 2008 ou o Visual Web Developer 2008 e crie um novo site.
Localize na Toolbox, aba Data, o controle Chart e arraste para seu arquivo default.aspx.



Chart Control na aba Data da Toolbox.
 

Não vou entrar em detalhes de layout, essa parte pode ser facilmente configurada nas propriedades do controle. Salvo isso, o codigo em seu aspx deve ficar similar a esse :

<asp:Chart ID="Chart1" runat="server"
    
BackColor="128, 128, 255"
    
BackGradientStyle="TopBottom"
     BackImageWrapMode="Scaled"
    
BackSecondaryColor="192, 192, 255"
     BorderlineColor="255, 192, 128"
     Width="539px" >

     <BorderSkin                  
     
BackGradientStyle="TopBottom" 
      
BackImageTransparentColor="192, 255, 192" 
      SkinStyle="Raised" />
           

     <
series>

    
<asp:Series Name="Series1">
               
    
</asp:Series>
           
    
</series>


     <
chartareas>
    
    
<asp:ChartArea
     
BackColor="128, 128, 255"
      BackGradientStyle="TopBottom"
                 
     
Name="ChartArea1">
                 
    
</asp:ChartArea>
    
</chartareas>

</
asp:Chart>   

No code-behind ( default.aspx.cs ), vamos codificar o evento Load para criar os dados e vincular ao nosso controle de gráfico.

protected void Page_Load(object sender, EventArgs e){

// Criando dois arrays, um com os nomes dos vendedores, e
// Outro com os valores das vendas
string[] Vendedores = { "João", "José", "Antônio", "Maria" };
double[] Totais = { 1000, 2300, 1220.33, 2222.40 }; 

// Adicionando Título
Chart1.Titles.Add("Relatório de Vendas"); 

// Setando tipo de Grafico ( Colunas Verticais )
Chart1.Series[0].ChartType = SeriesChartType.Column; 

// Vinculando os arrays ao Controle para que ele gere o
// Gráfico
Chart1.Series[0].Points.DataBindXY(Vendedores, Totais);           

// Mostrando os Gráficos com valores
Chart1.Series[0].IsValueShownAsLabel = true;

foreach (Series s in Chart1.Series)
{
 for (int i = 0; i < s.Points.Count; i++)     
 {           
   // Mostra o valor como tooltip
           
  
s.Points[i].ToolTip = "#VAL{C}";
      
 
}
}

}


Compilando nossa aplicação e rodando devemos ter
o resultado da imagem abaixo :





No próximo Post de Chart Controls vamos falar sobre o efeito HighLight, a mudança de cor ao passar o mouse sobre áreas do nosso gráfico.
[]s

Mais exemplos :  

Samples Environment for Microsoft Chart Controls
http://code.msdn.microsoft.com/mschart

Posted: jun 27 2009, 21:36 by marcelo | Comentários (48) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: ASP.NET | C# | Dicas de Tecnologia

Regular Expressions - Retirando Tags HTML de uma String

Como fazer para limpar as tags HTML da string abaixo de modo que só fiquemos com o texto ?

"<span><b>ASP.NET</b></span>"

Segue um exemplo usando Regular Expressions para retornar o Texto sem as tags HTML, no nosso caso, a palavra ASP.NET e jogar seu valor para a variável TextoPuro :

string
Html = "<span><b>ASP.NET</b></span>";
string TextoPuro = Regex.Replace( Html, @"<(.|\n)*?>", string.Empty );


A Classe Regex faz parte do namespace
System.Text.RegularExpressions


Aguardem os próximos Posts de Regular Expressions
[]s



Regular Expression Library
http://regexlib.com/

Posted: jun 21 2009, 02:07 by marcelo | Comentários (23) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: C# | Dicas de Tecnologia

ValidatorEnable - Habilitando e Desabilitando ASP.NET Validators

Quer desabilitar e habilitar de forma seletiva controles de validação do ASP.NET como RequiredFieldValidators e RegularExpressionValidators ?
Use a função ValidatorEnable.

Desabilitando :

function DisableValidator() {
    var myVal = document.getElementById('Id do Controle');
    ValidatorEnable(myVal, false);
}


Habilitando :

function EnableValidator() {
    var myVal = document.getElementById('Id do Controle');
    ValidatorEnable(myVal, true);
}


A função recebe como parâmetro o objeto Validator e um Boolean, False para desabilitar e True para habilitar o controle.

Podemos também unificar os exemplos acima :

<script language="javascript" type="text/javascript" >

function setValidator(bStatus, idControle) {
    var myVal = document.getElementById(idControle);
    ValidatorEnable(myVal, bStatus);
}

</script>

[]s

 

Posted: jun 16 2009, 23:26 by marcelo | Comentários (39) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5