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!!

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!!

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!!