Fala galera,
Segue mais uma dica para quem, como eu, migrou do VB.Net para o C# e se deparou com algumas mudanças em funções bastante rotineiras como o SPLIT.
No VB.Net o uso desta função é bem mais simplificado. Algo como: Split("string","@@")
No C# não é bem assim. Segue o código:
string teste = "String1@@String2";
string[] arrList = teste.Split(new char[] {'@', '@'}, StringSplitOptions.RemoveEmptyEntries);
Atenção para o texto em negrito. Pois ao fazer o split de uma string utilizando mais de um delimitador são gerados inúmeras posições em branco no seu array.
Ao utilizar a opção "RemoveEmptyEntries" todas essas posições em branco serão automaticamente removidas do array.
Um abraço e até a próxima!!
terça-feira, 5 de julho de 2011
quinta-feira, 6 de janeiro de 2011
LINQ to SQL - Ordenando Dados Randomicamente
Fala, galera!!
Depois de alguns meses sem postar, estou voltando com uma postagem relâmpago, mas bastante útil.
Hoje vou mostrar como ordenar randomicamente uma lista utilizando o LINQ e expressão lambda.
Antes do LINQ, a ordenação era feita via SQL utilizando "Order by NewID".
Segue o código para a ordenação randomica no LINQ:
dim db as DataContext()
dim rnd as random = new random()
db.Tabela.OrderBy(function(obj) rnd.Next).tolist()
Simples assim.
Um abraço e até a próxima!!
Depois de alguns meses sem postar, estou voltando com uma postagem relâmpago, mas bastante útil.
Hoje vou mostrar como ordenar randomicamente uma lista utilizando o LINQ e expressão lambda.
Antes do LINQ, a ordenação era feita via SQL utilizando "Order by NewID".
Segue o código para a ordenação randomica no LINQ:
dim db as DataContext()
dim rnd as random = new random()
db.Tabela.OrderBy(function(obj) rnd.Next).tolist()
Simples assim.
Um abraço e até a próxima!!
terça-feira, 5 de outubro de 2010
Herança no Web.Config - Resolvendo problema de conflito
Fala, galera!!
Segue mais uma dica valiosa que irá poupar tempo de muita gente.
Durante o processo de migração me deparei com um conflito no web.config que ainda não sei se é uma característica do Framework 4.0 ou do IIS 7.
Meu cenário é o seguinte:
Minha solution possui um Web Application referente ao Front-End cujo Framework é o 4.0 e um outro Web Application referente à área de administração cujo Framework é o 3.5. Motivo: Estou utilizando o Asp.Net Dynamic Data para a administração e a nova versão do mesmo não possui o Dynamic Data Filtering implementado. Desta forma, para adicionar novos filtros dinamicamente eu teria que codificar meus próprios templates de filtro. Como outra pessoa já fez isso para a primeira versão do A.D.D, decidi manter esta versão que me atende plenamente.
Prosseguindo...
Meu IIS possui um website principal e um aplicação "filha" que é a área de administração.
Ao fazer o deploy para produção passou a ocorrer um conflito de versões.
Aparentemente, minha aplicação 3.5 estava herdando o web.config da aplicação 4.0.
Perdi um bom tempo tentando entender, mas achei a solução. Bem simples, por sinal.
Basta adicionar a seguinte linha no web.config, logo acima da tag <system.web>:
<location path="." inheritInChildApplications="false">
No meu caso, o web.config ficou mais ou menos assim:
<location path="." inheritInChildApplications="false">
<system.web>
<compilation debug="false" strict="false" explicit="true" targetFramework="4.0">
...
</system.web>
</location>
Todo código incluído na tag <location> não será herdado pelas aplicações "filhas".
No meu caso, a linha que continha a tag <compilation> estava gerando o conflito.
Um abraço e até a próxima!!
Segue mais uma dica valiosa que irá poupar tempo de muita gente.
Durante o processo de migração me deparei com um conflito no web.config que ainda não sei se é uma característica do Framework 4.0 ou do IIS 7.
Meu cenário é o seguinte:
Minha solution possui um Web Application referente ao Front-End cujo Framework é o 4.0 e um outro Web Application referente à área de administração cujo Framework é o 3.5. Motivo: Estou utilizando o Asp.Net Dynamic Data para a administração e a nova versão do mesmo não possui o Dynamic Data Filtering implementado. Desta forma, para adicionar novos filtros dinamicamente eu teria que codificar meus próprios templates de filtro. Como outra pessoa já fez isso para a primeira versão do A.D.D, decidi manter esta versão que me atende plenamente.
Prosseguindo...
Meu IIS possui um website principal e um aplicação "filha" que é a área de administração.
Ao fazer o deploy para produção passou a ocorrer um conflito de versões.
Aparentemente, minha aplicação 3.5 estava herdando o web.config da aplicação 4.0.
Perdi um bom tempo tentando entender, mas achei a solução. Bem simples, por sinal.
Basta adicionar a seguinte linha no web.config, logo acima da tag <system.web>:
<location path="." inheritInChildApplications="false">
No meu caso, o web.config ficou mais ou menos assim:
<location path="." inheritInChildApplications="false">
<system.web>
<compilation debug="false" strict="false" explicit="true" targetFramework="4.0">
...
</system.web>
</location>
Todo código incluído na tag <location> não será herdado pelas aplicações "filhas".
No meu caso, a linha que continha a tag <compilation> estava gerando o conflito.
Um abraço e até a próxima!!
Url Amigável - Migrando do Framework 3.5 para o 4.0
Fala, galera!!
Esta semana migrei minha primeira aplicação do framework 3.5 para o 4.0.
O motivo: Suporte nativo à URL Amigável.
Tudo funcionou perfeitamente em meu ambiente de desenvolvimento.
A surpresa foi quando fiz o deploy da aplicação para o servidor de produção: Todas as URL's amigáveis pararam de funcionar!
Após uma rápida pesquisa, consegui a solução.
Basta adicionar o código abaixo no seu arquivo web.config, logo após a seção <ConfigSections>:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
OBS: Quem criar um novo projeto já no framework 4.0 não deverá passar por esse problema.
Um abraço e até a próxima!!
Esta semana migrei minha primeira aplicação do framework 3.5 para o 4.0.
O motivo: Suporte nativo à URL Amigável.
Tudo funcionou perfeitamente em meu ambiente de desenvolvimento.
A surpresa foi quando fiz o deploy da aplicação para o servidor de produção: Todas as URL's amigáveis pararam de funcionar!
Após uma rápida pesquisa, consegui a solução.
Basta adicionar o código abaixo no seu arquivo web.config, logo após a seção <ConfigSections>:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
OBS: Quem criar um novo projeto já no framework 4.0 não deverá passar por esse problema.
Um abraço e até a próxima!!
Marcadores:
erro 404,
migração de framework,
url amigável
quinta-feira, 30 de setembro de 2010
Asp.Net Dynamic Data - Ordenando dados do GridView
Fala, galera!!
Hoje irei mostrar como ordenar os dados de um gridview utilizado pelo Asp.Net Dynamic Data.
A primeira coisa a ser feita é definir no seu arquivo de MetaDados qual campo será utilizado como critério de ordenação e qual será o critério: Ascending ou Descending.
O código em negrito é o que deve ser adicionado no arquivo de Metadados.
<MetadataType(GetType(PROJETO_Metadata))> _
<DisplayColumn("NomeProjeto", "NomeProjeto", False)> _
Partial Public Class PROJETO
No código acima, minha grid será ordenada pelo nome do projeto em ordem crescente (Ascending).
Agora vamos adicionar o código que fará a ordenação da GridView:
No arquivo List.aspx, basta adicionar o seguinte no código no evento Page_Load:
If Not Page.IsPostBack Then
Dim Ordem As String = IIf(table.SortDescending = True, "Descending", "Ascending")
Dim orderBy As String = String.Format("{0} {1}", table.DisplayColumn.SortExpression, Ordem)
GridDataSource.OrderBy = orderBy
End If
Um abraço e até a próxima!!
Hoje irei mostrar como ordenar os dados de um gridview utilizado pelo Asp.Net Dynamic Data.
A primeira coisa a ser feita é definir no seu arquivo de MetaDados qual campo será utilizado como critério de ordenação e qual será o critério: Ascending ou Descending.
O código em negrito é o que deve ser adicionado no arquivo de Metadados.
<MetadataType(GetType(PROJETO_Metadata))> _
<DisplayColumn("NomeProjeto", "NomeProjeto", False)> _
Partial Public Class PROJETO
No código acima, minha grid será ordenada pelo nome do projeto em ordem crescente (Ascending).
Agora vamos adicionar o código que fará a ordenação da GridView:
No arquivo List.aspx, basta adicionar o seguinte no código no evento Page_Load:
If Not Page.IsPostBack Then
Dim Ordem As String = IIf(table.SortDescending = True, "Descending", "Ascending")
Dim orderBy As String = String.Format("{0} {1}", table.DisplayColumn.SortExpression, Ordem)
GridDataSource.OrderBy = orderBy
End If
Um abraço e até a próxima!!
Marcadores:
Asp.Net Dynamic Data,
gridview,
Ordenação
sexta-feira, 24 de setembro de 2010
Update Progress & Update Panel Trigger
Fala, galera!!
Segue a solução para quem, como eu, enfrentou problemas ao colocar o Update Progress para funcionar com um update Panel cuja atualização é disparada através de uma trigger.
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
var postBackElement;
function InitializeRequest(sender, args) {
if (prm.get_isInAsyncPostBack())
args.set_cancel(true);
$get('ctl00_ContentPlaceHolder1_upProgresso').style.display = 'block';
}
function EndRequest(sender, args) {
$get('ctl00_ContentPlaceHolder1_upProgresso').style.display = 'none';
}
</script>
O script deve ser adicionado logo após o controle ScriptManager. Caso contrário, ocorrerá um erro no javascript: "Sys is not defined"
Um abraço e até a próxima!!
Segue a solução para quem, como eu, enfrentou problemas ao colocar o Update Progress para funcionar com um update Panel cuja atualização é disparada através de uma trigger.
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
var postBackElement;
function InitializeRequest(sender, args) {
if (prm.get_isInAsyncPostBack())
args.set_cancel(true);
$get('ctl00_ContentPlaceHolder1_upProgresso').style.display = 'block';
}
function EndRequest(sender, args) {
$get('ctl00_ContentPlaceHolder1_upProgresso').style.display = 'none';
}
</script>
O script deve ser adicionado logo após o controle ScriptManager. Caso contrário, ocorrerá um erro no javascript: "Sys is not defined"
Um abraço e até a próxima!!
Marcadores:
Trigger,
Update Panel,
Update Progress
terça-feira, 21 de setembro de 2010
Exportando dados para o Excel
Fala, galera!!
Fiquei meio ausente. O tempo anda escasso.
Portanto, farei um post relâmpago para quem precisa, como eu precisei, exportar dados de um gridview para uma planilha excel.
Ai vai...
Private Sub ExportarParaExcel()
Dim util As New util
Dim tw As New StringWriter()
Dim hw As New System.Web.UI.HtmlTextWriter(tw)
Dim frm As HtmlForm = New HtmlForm()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=Planilha.xls")
Response.Charset = ""
EnableViewState = False
Controls.Add(frm)
frm.Controls.Add(grdDados) 'Aqui você informa o seu controle GridView
frm.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
End Sub
Bem simples e bem útil.
Um abraço e até a próxima!!
Fiquei meio ausente. O tempo anda escasso.
Portanto, farei um post relâmpago para quem precisa, como eu precisei, exportar dados de um gridview para uma planilha excel.
Ai vai...
Private Sub ExportarParaExcel()
Dim util As New util
Dim tw As New StringWriter()
Dim hw As New System.Web.UI.HtmlTextWriter(tw)
Dim frm As HtmlForm = New HtmlForm()
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("content-disposition", "attachment;filename=Planilha.xls")
Response.Charset = ""
EnableViewState = False
Controls.Add(frm)
frm.Controls.Add(grdDados) 'Aqui você informa o seu controle GridView
frm.RenderControl(hw)
Response.Write(tw.ToString())
Response.End()
End Sub
Bem simples e bem útil.
Um abraço e até a próxima!!
Assinar:
Postagens (Atom)