Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DarkDucke

GridView Dinamico, sort, paginação e formatação!

Recommended Posts

Bom, nao tava querendo etra no forum esses dias neeemmmm...entrei!!! o negócio é o seguinte galera, to trabalhando com mysql quando eu coloco um gridview na tela, um salDataSource, faço as ligações tudo certo, até ai beleza, sem tira a sintaxe q ele monta que pra mysql da uns erros.... mais o negocio eh que quando eu faço assim somente colocando a propriedade sort do gridview para true ele faz tudo sozin não da nenhum erro, agora eu estou fazendo estas ligações no evento page_load justamente por causa dos comando sql e passagens de parametros, fica mais facil assim, e estou usando MysqlConnection em vez de SqlConnectionmeu código está assim:

String StrConn = ConfigurationManager.AppSettings["ConMySql"];MySqlConnection Conn = new MySqlConnection(StrConn);String SQL = "SELECT COD, NOME, FONE1, EMAIL, LOGIN, NIVEL FROM USERS ORDER BY COD ASC";MySqlDataAdapter adap = new MySqlDataAdapter(SQL, Conn);DataSet Ds = new DataSet();adap.Fill(Ds);GV.DataSource = Ds;GV.DataBind();

o problema é que fazendo assim e a propriedade sorte do gridview estiver true ele da erro quando clica em alguma coluna para ordenar... creio que quem faz esse trabalho é o sqlDataSource mais como não estou usando deve ser implementado algum código adicional para fazer o trabalho de ordenação...alguem poderia me dar uma luz sobre isso... e como fazer desta maneira?e também como como não defini as colunas do gridview lah no Edit e tals... como faço para por exemplo adicionar uma coluna com um link "Excluir" "Editar" e nestes links ter uma chamada para uma url deluser.aspx?u=2541, centralizar o conteudo de uma determinada celular, formatar valor,comparar valor, isso em tempo de execução, por exemplo, se no registro 10 o campo Status for = 10 entao mudar a cor desta celula.... jah aproveitando, do jeito que está ai, como faço para saber se encontrou regitros ou nao??? obrigado desde já!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem que criar uma função que retorne um DataSet em sua classe.

 

E no design define um ObjectDataSource como fonte de dados do gridview.

 

Faço assim e funciona perfeitamente.

 

Exemplos:

Classe (em VB):

Imports SystemImports System.DataImports MySql.DataImports MySql.Data.MySqlClientImports System.WebImports System.Configuration.ConfigurationManagerImports System.CollectionsNamespace mx1Data    Public Class ATdata  Public Function mx1DataSet(ByVal SQL As String) As DataSet			Dim DS As New DataSet			Dim MyCommand As New MySqlDataAdapter(SQL, conn)			Try				MyCommand.Fill(DS, "Table1")				Return DS			Catch ex As MySqlException				Return Nothing			Finally				DS.Dispose()			End Try		End FunctionEnd ClassEnd Namespace

Na página

<%@ Page Language="VB" Inherits="mx1Data.AtData" %>..........<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True" DataSourceID="ObjectDataSource1" DataKeyNames="Codigo" AllowPaging="True">			   <PagerSettings FirstPageText="" LastPageText="" NextPageText="" Position="TopAndBottom"			PreviousPageText="" />	</asp:GridView>	<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="mx1DataSet"		TypeName="mx1Data.ATData">		<SelectParameters>			<asp:Parameter Name="SQL" Type="Char" DefaultValue="SELECT * FROM Tabela " />		</SelectParameters>	</asp:ObjectDataSource>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi esta função sua... você faz a conexao monta o data set o joga no datasource q você tem em desing...legal vou fazer uma função desta... você usa Mysql?mais o que eu quero eh formatar o grid! em em codigo... centraliza dados de uma coluna, inserir uma coluna personalizada com link para uma outro pagina exemplo alterar.aspx?cod_user=10vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

inserir uma coluna personalizada com link para uma outro pagina exemplo alterar.aspx?cod_user=10

Pode fazer isso diretamente na sql
SELECT cod_user, nome, CONCAT('<a href=alterar.aspx?cod_user=',Cast(cod_user as CHAR),'>Link</a>') as Link FROM Tabela
Na propriedade da coluna do Gridview em design definir HTMLEncode com False para aceitar o html.Usar o MYSQL com o Visual Studio dá um pouco mais de trabalho no começo porque ele não dá suporte nativo, mas é possível criar uma camada de acesso e depois fica mamão com açucar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, neste exato momento estou quase pagando por um bd sql server nao aguento mais os problemas com o mysql vs e asp.net.. fora este estou com um problema com profiles e providers... nossa que canceira viu...você usa mysq? como faz com os profiles???faze direto no sql fica muito sujo....sabe me falar qual campo uso para guardar data e para guardar somente a hora no mysq?vlws!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.