Jump to content

[VB.NET 1.1] Criar Colunas Personalizadas numa DataGrid


teckV

Recommended Posts

se quiserem listar os conteudos de uma tabela numa grid e quiserem que a grid tenha mais duas colunas com funcionalidades extra, tipo, eliminar registo e ver detalhe

código HTML para a DataGrid

<asp:datagrid id="datGridDumps" style="Z-INDEX: 102; LEFT: 33px; POSITION: absolute; TOP: 135px"
			runat="server" Font-Names="Verdana" Width="853px" OnDeleteCommand="datGridDumps_DeleteCommand"
	DataKeyField="dumpID" Height="25px" BorderColor="Black" BorderStyle="Solid">
  <Columns>
<asp:ButtonColumn Text="Eliminar" CommandName="Delete"></asp:ButtonColumn>
<asp:HyperLinkColumn Text="Relatorio" Target="_blank" DataNavigateUrlField="dumpID" DataNavigateUrlFormatString=" ../server?/AD/ad_prop&dumpID={0}">
</asp:HyperLinkColumn>
			</Columns>
		</asp:datagrid>

aqui saliento esta propriedade: "DataKeyField" que vai indicar qual o campo na tabela que server de indice ao registo, neste caso o dumpID

DataKeyField="dumpID"

e é aqui que se definem os eventos associados a essa coluna... elas são links... quando se clica nesse link é disparado o evento associado

OnDeleteCommand="datGridDumps_DeleteCommand"

neste caso quando clicarem na coluna associada ao delete, este evento é lançado

a parte referente às colunas.. no caso do delete é a propriedade "CommandName" que vai indicar que é a coluna para delete e associa ao evento delete

<Columns>
<asp:ButtonColumn Text="Eliminar" CommandName="Delete"></asp:ButtonColumn>
<asp:HyperLinkColumn Text="Relatorio" Target="_blank" DataNavigateUrlField="dumpID" DataNavigateUrlFormatString=".. /server?/AD/ad_prop&dumpID={0}">
</asp:HyperLinkColumn>
</Columns>

assim... quando clicarem no link que têm o texto "Eliminar" (defenido na propriedade Text="Eliminar") é executado o código neste evento

codigo no evento... no evento precisamos saber qual o registo selecionado... para tal usamos o tal DataKeyField="dumpID" que é o campo na tabela com o indice do registo... para receber o valor do registo selecionado na grid usa-se:

intDumpID = datGridDumps.DataKeys(CInt(e.Item.ItemIndex))

Public Sub datGridDumps_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles datGridDumps.DeleteCommand

        Try

            Dim strCon = ConfigurationSettings.AppSettings("conString")
            Dim MyCon = New SqlConnection(strCon)
            MyCon.Open()

            Dim intDumpID As Int32
            intDumpID = datGridDumps.DataKeys(CInt(e.Item.ItemIndex))

            Dim MyCommand As SqlCommand = New SqlCommand
            MyCommand.Connection = MyCon

            MyCommand.CommandText = "DELETE FROM ad_accounts WHERE(dumpID = " & intDumpID & ")"
            Call MyCommand.ExecuteNonQuery()

            MyCommand.CommandText = "DELETE FROM ad_dumps WHERE (dumpID = " & intDumpID & ")"
            Call MyCommand.ExecuteNonQuery()

            boundControls()

            MyCommand = Nothing
            MyCon.close()

        Catch Ex As Exception
            deb.WriteLine("erro = " & Ex.Message)
            lblMSG.Text = "Ocorreu um erro na introdução dos dados!!  Verifique os dados a introduzir"
        End Try

    End Sub

explorem melhor... apenas quero dar uma ideia das potencialidades...

teckV

house of horus

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.