Jump to content


JuBachesque

Member Since 16/11/2004
Offline Last Active 23/11/2004, 15:23
-----

Posts I've Made

In Topic: Update No Datagrid

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

In Topic: Update No Datagrid

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

IPB Skin By Virteq