Arquivo para a categoria 'ASP.NET'

02
Set
08

Linha do DataGrid – Disparando algum evento

 

 Muitas vezes, quando dispomos aos usuários uma página web com uma listagem de registros e um botão de ação, sempre é interessante acoplar nesta solução uma funcionalidade que não está presente por padrão. Essa funcionalidade é habilitar a linha toda do controle DataGrid para executar a ação.

Para explicar melhor, analise a figura ao lado. Vemos que temos um botão do tipo Select que marca o registro quando o usuário pressionar. Muitas vezes o usuário quer clicar em qualquer lugar desta linha e executar este processo e não somente em cima daquele controle. Este artigo vai abordar este ponto, ou seja, aprender como gerar esta funcionalidade.

 

 Para que possamos alcançar esse efeito, temos que utilizar o evento ItemDataBound do DataGrid, onde nele deve ser verificado o tipo da linha através da propriedade ItemType para assegurar que é uma linha de registro. Depois desta verificação, recuperamos o controle LinkButton através da coleção de controles que a propriedade Item disponibiliza. De posse do LinkButton, utilizamos o método GetPostBackEventReference da classe Page, onde informamos o controle e é retornado a referência ao código script que é invocado quando o controle é clicado e, consequentemente causa o PostBack. O código abaixo exemplifica o que vimos:

 

private void DataGrid1_ItemDataBound(Object sender,
     System.Web.UI.WebControls.DataGridItemEventArgs e){

     if(e.Item.ItemType == ListItemType.AlternatingItem ||
          e.Item.ItemType == ListItemType.Item){

          LinkButton lnk = (LinkButton)e.Item.Cells[0].Controls[0];
          e.Item.Attributes.Add(“onClick”, Page.GetPostBackEventReference(link, “”));
          e.Item.Attributes.Add(“style”, “cursor:hand”);
     }
}

 VB.NET

Como vemos, o retorno do método GetPostBackEventReference adicionamos como value do evento Javascript onClick, que será executado no cliente e terá a mesma função do botão Select. Por último, apenas adicionamos um style na linha do DataGrid para que o cursor do mouse fique em forma de “mão” para dar a impressão ao usuário que a linha é clicável.

 Outra forma de usar:

 

 
Protected Sub dgConsultaCliente_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgConsultaCliente.RowDataBound
If e.Row.RowType = ListItemType.Item Or e.Row.RowType = ListItemType.AlternatingItem Then
Dim retorno As String = “”
e.Row.Style(“cursor”) = “hand” ‘ Cursor
If dgConsultaCliente.Columns.Count > 1 Or dgConsultaCliente.AutoGenerateColumns Then
‘e.Row.Cells(0).Text = “” & e.Row.Cells(0).Text & “
e.Row.Attributes.Add(“onClick”, “javascript:txtCodCons.value=” & e.Row.Cells(0).Text & “;” & ClientScript.GetPostBackEventReference(btnPesquisar, “”))
e.Row.Cells(0).Text = “” & e.Row.Cells(0).Text & “
End If
End If
End Sub

Link e créditos da matéria: http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=46

 

   
28
Ago
08

Montar um dropdownlist(combo) com os items(options) tendo o value diferente do text.

‘Montar um dropdownlist(combo) com os items(options) tendo o value diferente do text.
‘Adapte conforme for a sua tabela e campos no BD.
‘Retire os comentários acima e abaixo conforme necessário para a aplicação rodar.Dim connString,strSQL as String
Dim objConexao as OleDbConnection
Dim objCommand as OleDbCommand
Dim objDataReader as OleDbDataReader

‘connString = “PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=” & ‘Server.MapPath(“Bancos.mdb”)
‘objConexao = New OleDbConnection(connString)
‘objConexao.Open()

‘>>Instrução SQL p/ montar o combo dos bancos.
strSQL = “Select BCCOD,BCDESCR from HT_DBGERAL_DBANCO order by BCCOD”
objCommand = New OleDbCommand(strSQL, objConexao) ‘»»Define a instrução SQL a ser executada.
objDataReader = objCommand.ExecuteReader() ‘»»Armazena o valor da consulta no objeto DataReader.

‘>>INÍCIO: Montagem do combo cboBanco.
While objDataReader.Read = true
‘>>Forma de se montar um dropdownlist(combo) com os items(options) tendo o value diferente do text:
cboBanco.Items.Add(New ListItem(objDataReader(“BCCOD”) & ” – ” & objDataReader(“BCDESCR”)))
cboBanco.Items(cboBanco.Items.Count – 1).Value = objDataReader(“BCDESCR”)
End While
‘>>FIM: Montagem do combo cboBanco.

‘>>INÍCIO: Rotina p/ fechar/tirar objetos da memória.
objDataReader.Close()
objConexao.Close()
objDataReader = Nothing
objCommand = Nothing
objConexao = Nothing
‘>>FIM: Rotina p/ fechar/tirar objetos da memória.

<form id=”frmGravar” enctype=”application/x-www-form-urlencoded” runat=”server”>
<asp:dropdownlist ID=”cboBanco” Font-Name=”Verdana” Font-Size=”8″ AutoPostBack=”false” runat=”server”></asp:dropdownlist>
</form>

27
Ago
08

usando o objeto dataReader

Imports System.Data
Imports System.Data.SqlClientPartial Class conexao_dataReader
Inherits System.Web.UI.Page

Sub Page_load()
‘cria atring de conexao
Dim strConnection As String = “User id=sa;password=sa;”
strConnection += “database=loja;server=localhost; connect timeout=30;”
‘mostra a string usando label
data_src.Text = strConnection
‘cria a consulta sql em string
Dim strSQL As String = “SELECT id, sdescricao, sdetalhes from tbProduto”
‘cria string para depois exibir os dados.
Dim strResultHolder As String
‘cria objeto de conexao(e faz referencia a string de conexao criada acima)
Dim objConnection As New SqlConnection(strConnection)
‘cria o objeto de comando SQL ado.net
Dim objCommand As New SqlCommand(strSQL, objConnection)
‘cria uma instancia para ler o objeto.
Dim objDataReader As SqlDataReader

Try ‘testa a conexao

objConnection.Open() ‘abre a conexao
con_open.Text = “conexao estabelecida com exito.”
objDataReader = objCommand.ExecuteReader() ‘efetua a ligacao com o banco X comando.

strResultHolder = “”
Do While objDataReader.Read() = True
strResultHolder += objDataReader(“id”) & ” ; “
strResultHolder += objDataReader(“sdescricao”) & ” ; “
strResultHolder += objDataReader(“sDetalhes”) & “<br>”
Loop

div_resultado.InnerHtml = strResultHolder
objDataReader.Close()
objConnection.Close()
con_close.Text = “conexao fechada…”

Catch ex As Exception
con_open.Text = “falha na conexao!!!”
con_open.Text = ex.ToString()
End Try

End Sub
End Class




 

Novembro 2009
S T Q Q S S D
« Set    
 1
2345678
9101112131415
16171819202122
23242526272829
30