Jump to content


Photo

Update No Datagrid


  • Faça o login para participar
3 replies to this topic

#1 JuBachesque

JuBachesque

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 16/11/2004, 07:30

Bom Dia Pessoal!
Olha sou novo em asp.net e estava precisando criar um método de poder atualizar o datagrid, ja consegui fazer o remover e o cancelar, mas não consigo criar o update, para transformar os campos em caixa de texto e permitir alterar do dados da linha selecionada sempre me da erro.
alguem tem algum código pronto para dar uma olhada ou pode me ajudar.
Obrigado!!
Juliano

#2 wozniak

wozniak

    Arquiteto de software

  • Usuários
  • 578 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro / RJ

Posted 16/11/2004, 09:48

posta seu código...

abraços
t+

#3 JuBachesque

JuBachesque

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 16/11/2004, 13:24

O Código da minha página em asp é o seguinte:


*************// PARTE VB // ***************************************

Public Class usuarioscadastrados
Inherits System.Web.UI.Page

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Label1 As System.Web.UI.WebControls.Label

'NOTE: The following placeholder declaration is required by the Web Form Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
If Not Page.IsPostBack Then
BindData()
End If

End Sub
Public Sub BindData()
Dim Apps_Kodak As New white.Apps_Kodak
Dim DataSetUsuario As New DataSet
'Apps_Kodak.SelecAll acessa o banco e retorna todos os usuarios
DataSetUsuario = Apps_Kodak.SelectAll()
DataGrid1.DataSource = DataSetUsuario.Tables(0).DefaultView
DataGrid1.DataBind()
End Sub

Public Sub Edit(ByVal source As Object, ByVal E As DataGridCommandEventArgs) Handles DataGrid1.EditCommand

Dim Apps_Kodak As New white.Apps_Kodak
Dim DataSetUsuario As New DataSet

DataGrid1.EditItemIndex = E.Item.ItemIndex
BindData()

End Sub
Public Sub DataGrid_Cancel(ByVal Source As Object, ByVal E As DataGridCommandEventArgs) Handles DataGrid1.CancelCommand

Dim Apps_Kodak As New white.Apps_Kodak
Dim DataSetUsuario As New DataSet

DataGrid1.EditItemIndex = -1
BindData()
End Sub
Public Sub DataGrid_Atualiza(ByVal source As Object, ByVal e As DataGridCommandEventArgs)

Dim Apps_Kodak As New white.Apps_Kodak
Dim DataSetUsuario As New DataSet
'Na linha abaixo ele não aceita, exibe mensagem de erro
Dim qtyText As TextBox = e.Item.Cells(2).Controls(0)
Dim priceText As TextBox = e.Item.Cells(3).Controls(0)
'Dim txtNome As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text
Dim txtNome As TextBox = e.Item.Cells(2).Controls(0)

'Dim txtLogin As String

'txtNome = CType(e.Item.Cells(3).Controls(0), TextBox).Text
'txtLogin = CType(e.Item.Cells(4).Controls(0), TextBox).Text

DataGrid1.EditItemIndex = -1
BindData()
End Sub

Public Sub delete(ByVal source As Object, ByVal E As DataGridCommandEventArgs)
Dim Apps_Kodak As New white.Apps_Kodak
Dim DataSetUsuario As New DataSet
'NÃO ESQUECER DE COLOCAR O ABAIXO COOKIE PARA SE TER CERTEZA DE QUE É O ADMINISTRADOR QUE ESTA REMOVENDO
Apps_Kodak.Deleta_Usuario(CInt(E.Item.Cells(2).Text), 99)
'NÃO ESQUECER DE COLOCAR ACIMA O COOKIE PARA SE TER CERTEZA DE QUE É O ADMINISTRADOR QUE ESTA REMOVENDO
BindData()

End Sub


End Class

*************************/// PARTE HTML // ***************************

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="usuarioscadastrados.aspx.vb" Inherits="tesdedatagrid.usuarioscadastrados" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>usuarioscadastrados</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.micro...tellisense/ie5" name="vs_targetSchema">
</HEAD>
<body bgColor="#ffcc33" MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:label id="Label1" style="Z-INDEX: 101; LEFT: 216px; POSITION: absolute; TOP: 24px" runat="server"
Width="304px" Height="32px" Font-Size="X-Large" Font-Bold="True" ForeColor="Red">Usuários Cadastrados
</asp:label>
<asp:datagrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 208px; POSITION: absolute; TOP: 80px"
runat="server" Width="456px" Height="144px" BorderColor="Black" BackColor="Silver" BorderStyle="None"
ShowFooter="false"
HorizontalAlign="Center"
PageSize="5"
AutoGenerateColumns="False"
OnEditCommand="Edit"
OnCancelCommand="DataGrid_Cancel"
OnDeleteCommand = "delete"
OnUpdateCommand="DataGrid_Atualiza"
DataKeyField="id">

<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="Yellow" VerticalAlign="Middle"
BackColor="#404040"></HeaderStyle>
<FooterStyle HorizontalAlign="Center" VerticalAlign="Middle"></FooterStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" CancelText="Cancelar" EditText="Editar" UpdateText="Atualizar" />
<asp:ButtonColumn Text="Remover" CommandName="Delete"></asp:ButtonColumn>
<asp:BoundColumn HeaderText="ID" SortExpression="ID" ReadOnly="True" DataField="ID"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Nome" SortExpression="Nome" ReadOnly="True" DataField="Nome"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Login" SortExpression="Login" ReadOnly="True" DataField="Login"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Nivel Acesso" SortExpression="Nivel Acesso" ReadOnly="True" DataField="Nivel Acesso"></asp:BoundColumn>
</Columns>
</asp:datagrid></form>
</body>
</HTML>


Quando eu clico em Atualizar é exibida a seguinte mensagem:

Server Error in '/tesdedatagrid' Application.
--------------------------------------------------------------------------------

Specified argument was out of the range of valid values. Parameter name: index
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: index

Source Error:


Line 61: Dim DataSetUsuario As New DataSet
Line 62: 'Na linha abaixo ele não aceita, exibe mensagem de erro
Line 63: Dim qtyText As TextBox = e.Item.Cells(2).Controls(0)Line 64: Dim priceText As TextBox = e.Item.Cells(3).Controls(0)
Line 65: 'Dim txtNome As String = CType(e.Item.Cells(3).Controls(0), TextBox).Text


Source File: c:\inetpub\wwwroot\tesdedatagrid\usuarioscadastrados.aspx.vb Line: 63

#4 JuBachesque

JuBachesque

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 17/11/2004, 06:53

Olá Pessoal!
Consegui resolver o meu problema.
Quando eu criava a coluna, estava usando a seguinte expressão:

<asp:BoundColumn HeaderText="Nivel Acesso" SortExpression="Nivel Acesso" ReadOnly="True" DataField="Nivel Acesso"></asp:BoundColumn>


quando tirei ReadOnly passou a funcionar como queria, sem ela célula da linha selecionada, passou a poder ser alterada.

Obrigado!!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq