Dynamic Datagrid does not fire events.

Discussion in 'ASP .Net' started by Mark, Jul 29, 2003.

  1. Mark

    Mark Guest

    I have been working for quite some time on this issue which in theory
    should be quite simple. The problem is that the Cancel and Save
    events are not fired when their respective buttons are clicked.

    I have read several posts which say to put your column generating
    section in the Page_Init section and it will solve the
    problem....however, it hasn't solved mine.

    Can somebody please take a look at this and provide any insight if
    possible?

    Thanks,
    Mark




    Imports System
    Imports System.Data
    Imports System.Data.OleDb

    Public Class DynaGrid

    Inherits System.Web.UI.Page
    Protected WithEvents plcData As
    System.Web.UI.WebControls.PlaceHolder
    Protected WithEvents dgData As New
    System.Web.UI.WebControls.DataGrid()

    #Region " Web Form Designer Generated Code "

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

    End Sub

    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.
    BindData()
    InitializeComponent()
    End Sub

    #End Region


    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
    System.EventArgs)

    End Sub


    Sub BindData()
    Dim dbConn As New OleDbConnection()
    dbConn.ConnectionString =
    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    Dim oAdapter As New OleDbDataAdapter("SELECT * FROM T_Group ",
    dbConn)
    Dim dsData As New DataSet()
    oAdapter.Fill(dsData)

    dgData.AllowPaging = False
    dgData.AllowSorting = False
    dgData.AutoGenerateColumns = False
    'dgData.EnableViewState = False

    Dim x As Integer
    For x = 0 To dsData.Tables(0).Columns.Count - 1
    Dim bcCol As New BoundColumn()
    bcCol.HeaderText = dsData.Tables(0).Columns(x).ColumnName
    bcCol.DataField = dsData.Tables(0).Columns(x).Caption
    dgData.Columns.Add(bcCol)
    bcCol = Nothing
    Next

    Dim bcEdit As New EditCommandColumn()
    bcEdit.ButtonType = ButtonColumnType.PushButton
    bcEdit.EditText = "Edit"
    bcEdit.CancelText = "Cancel"
    bcEdit.UpdateText = "Save"
    dgData.Columns.Add(bcEdit)
    bcEdit = Nothing

    dgData.DataSource = dsData.Tables(0)
    dgData.DataBind()

    AddHandler dgData.CancelCommand, AddressOf dgData_cmdCancel
    AddHandler dgData.EditCommand, AddressOf dgData_cmdEdit

    plcData.Controls.Add(dgData)
    End Sub


    Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridCommandEventArgs)
    dgData.EditItemIndex = -1
    Response.Write(e.CommandName)
    dgData.DataBind()
    End Sub


    Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridCommandEventArgs)
    dgData.EditItemIndex = -1
    Response.Write(e.CommandName)
    dgData.DataBind()
    End Sub


    Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridCommandEventArgs)
    dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    Response.Write(e.CommandName)
    dgData.DataBind()
    End Sub
    End Class
     
    Mark, Jul 29, 2003
    #1
    1. Advertising

  2. Mark,

    Make sure that viewstate is on and that the grid is recreated every page
    load.

    If these two things are done it should be working.

    If you'd like me to take a look at the code post it and I'll see if I can
    get it to work.

    --
    S. Justin Gengo, MCP
    Web Developer

    Free code library at:
    www.aboutfortunate.com

    "Out of chaos comes order."
    Nietzche
    "Mark" <> wrote in message
    news:...
    > I have been working for quite some time on this issue which in theory
    > should be quite simple. The problem is that the Cancel and Save
    > events are not fired when their respective buttons are clicked.
    >
    > I have read several posts which say to put your column generating
    > section in the Page_Init section and it will solve the
    > problem....however, it hasn't solved mine.
    >
    > Can somebody please take a look at this and provide any insight if
    > possible?
    >
    > Thanks,
    > Mark
    >
    >
    >
    >
    > Imports System
    > Imports System.Data
    > Imports System.Data.OleDb
    >
    > Public Class DynaGrid
    >
    > Inherits System.Web.UI.Page
    > Protected WithEvents plcData As
    > System.Web.UI.WebControls.PlaceHolder
    > Protected WithEvents dgData As New
    > System.Web.UI.WebControls.DataGrid()
    >
    > #Region " Web Form Designer Generated Code "
    >
    > 'This call is required by the Web Form Designer.
    > <System.Diagnostics.DebuggerStepThrough()> Private Sub
    > InitializeComponent()
    >
    > End Sub
    >
    > 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.
    > BindData()
    > InitializeComponent()
    > End Sub
    >
    > #End Region
    >
    >
    > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
    > System.EventArgs)
    >
    > End Sub
    >
    >
    > Sub BindData()
    > Dim dbConn As New OleDbConnection()
    > dbConn.ConnectionString =
    >

    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    > Dim oAdapter As New OleDbDataAdapter("SELECT * FROM T_Group ",
    > dbConn)
    > Dim dsData As New DataSet()
    > oAdapter.Fill(dsData)
    >
    > dgData.AllowPaging = False
    > dgData.AllowSorting = False
    > dgData.AutoGenerateColumns = False
    > 'dgData.EnableViewState = False
    >
    > Dim x As Integer
    > For x = 0 To dsData.Tables(0).Columns.Count - 1
    > Dim bcCol As New BoundColumn()
    > bcCol.HeaderText = dsData.Tables(0).Columns(x).ColumnName
    > bcCol.DataField = dsData.Tables(0).Columns(x).Caption
    > dgData.Columns.Add(bcCol)
    > bcCol = Nothing
    > Next
    >
    > Dim bcEdit As New EditCommandColumn()
    > bcEdit.ButtonType = ButtonColumnType.PushButton
    > bcEdit.EditText = "Edit"
    > bcEdit.CancelText = "Cancel"
    > bcEdit.UpdateText = "Save"
    > dgData.Columns.Add(bcEdit)
    > bcEdit = Nothing
    >
    > dgData.DataSource = dsData.Tables(0)
    > dgData.DataBind()
    >
    > AddHandler dgData.CancelCommand, AddressOf dgData_cmdCancel
    > AddHandler dgData.EditCommand, AddressOf dgData_cmdEdit
    >
    > plcData.Controls.Add(dgData)
    > End Sub
    >
    >
    > Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > dgData.EditItemIndex = -1
    > Response.Write(e.CommandName)
    > dgData.DataBind()
    > End Sub
    >
    >
    > Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > dgData.EditItemIndex = -1
    > Response.Write(e.CommandName)
    > dgData.DataBind()
    > End Sub
    >
    >
    > Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    > Response.Write(e.CommandName)
    > dgData.DataBind()
    > End Sub
    > End Class
     
    S. Justin Gengo, Jul 29, 2003
    #2
    1. Advertising

  3. Mark

    Mark Guest

    I did post the code.


    "S. Justin Gengo" <> wrote in message
    news:%...
    > Mark,
    >
    > Make sure that viewstate is on and that the grid is recreated every page
    > load.
    >
    > If these two things are done it should be working.
    >
    > If you'd like me to take a look at the code post it and I'll see if I can
    > get it to work.
    >
    > --
    > S. Justin Gengo, MCP
    > Web Developer
    >
    > Free code library at:
    > www.aboutfortunate.com
    >
    > "Out of chaos comes order."
    > Nietzche
    > "Mark" <> wrote in message
    > news:...
    > > I have been working for quite some time on this issue which in theory
    > > should be quite simple. The problem is that the Cancel and Save
    > > events are not fired when their respective buttons are clicked.
    > >
    > > I have read several posts which say to put your column generating
    > > section in the Page_Init section and it will solve the
    > > problem....however, it hasn't solved mine.
    > >
    > > Can somebody please take a look at this and provide any insight if
    > > possible?
    > >
    > > Thanks,
    > > Mark
    > >
    > >
    > >
    > >
    > > Imports System
    > > Imports System.Data
    > > Imports System.Data.OleDb
    > >
    > > Public Class DynaGrid
    > >
    > > Inherits System.Web.UI.Page
    > > Protected WithEvents plcData As
    > > System.Web.UI.WebControls.PlaceHolder
    > > Protected WithEvents dgData As New
    > > System.Web.UI.WebControls.DataGrid()
    > >
    > > #Region " Web Form Designer Generated Code "
    > >
    > > 'This call is required by the Web Form Designer.
    > > <System.Diagnostics.DebuggerStepThrough()> Private Sub
    > > InitializeComponent()
    > >
    > > End Sub
    > >
    > > 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.
    > > BindData()
    > > InitializeComponent()
    > > End Sub
    > >
    > > #End Region
    > >
    > >
    > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
    > > System.EventArgs)
    > >
    > > End Sub
    > >
    > >
    > > Sub BindData()
    > > Dim dbConn As New OleDbConnection()
    > > dbConn.ConnectionString =
    > >

    >

    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    > > Dim oAdapter As New OleDbDataAdapter("SELECT * FROM T_Group ",
    > > dbConn)
    > > Dim dsData As New DataSet()
    > > oAdapter.Fill(dsData)
    > >
    > > dgData.AllowPaging = False
    > > dgData.AllowSorting = False
    > > dgData.AutoGenerateColumns = False
    > > 'dgData.EnableViewState = False
    > >
    > > Dim x As Integer
    > > For x = 0 To dsData.Tables(0).Columns.Count - 1
    > > Dim bcCol As New BoundColumn()
    > > bcCol.HeaderText = dsData.Tables(0).Columns(x).ColumnName
    > > bcCol.DataField = dsData.Tables(0).Columns(x).Caption
    > > dgData.Columns.Add(bcCol)
    > > bcCol = Nothing
    > > Next
    > >
    > > Dim bcEdit As New EditCommandColumn()
    > > bcEdit.ButtonType = ButtonColumnType.PushButton
    > > bcEdit.EditText = "Edit"
    > > bcEdit.CancelText = "Cancel"
    > > bcEdit.UpdateText = "Save"
    > > dgData.Columns.Add(bcEdit)
    > > bcEdit = Nothing
    > >
    > > dgData.DataSource = dsData.Tables(0)
    > > dgData.DataBind()
    > >
    > > AddHandler dgData.CancelCommand, AddressOf dgData_cmdCancel
    > > AddHandler dgData.EditCommand, AddressOf dgData_cmdEdit
    > >
    > > plcData.Controls.Add(dgData)
    > > End Sub
    > >
    > >
    > > Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > dgData.EditItemIndex = -1
    > > Response.Write(e.CommandName)
    > > dgData.DataBind()
    > > End Sub
    > >
    > >
    > > Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > dgData.EditItemIndex = -1
    > > Response.Write(e.CommandName)
    > > dgData.DataBind()
    > > End Sub
    > >
    > >
    > > Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    > > Response.Write(e.CommandName)
    > > dgData.DataBind()
    > > End Sub
    > > End Class

    >
    >
     
    Mark, Jul 29, 2003
    #3
  4. Mark,

    Sorry I just wasn't specific. I'll chalk up my lack of presenting a logical
    request to the amount of sleep I had at the time. :)

    Could you please also post the designer's code. Then I can recreate the
    entire page and take a look.

    Sincerely,

    --
    S. Justin Gengo, MCP
    Web Developer

    Free code library at:
    www.aboutfortunate.com

    "Out of chaos comes order."
    Nietzche
    "Mark" <> wrote in message
    news:...
    > I did post the code.
    >
    >
    > "S. Justin Gengo" <> wrote in message
    > news:%...
    > > Mark,
    > >
    > > Make sure that viewstate is on and that the grid is recreated every page
    > > load.
    > >
    > > If these two things are done it should be working.
    > >
    > > If you'd like me to take a look at the code post it and I'll see if I

    can
    > > get it to work.
    > >
    > > --
    > > S. Justin Gengo, MCP
    > > Web Developer
    > >
    > > Free code library at:
    > > www.aboutfortunate.com
    > >
    > > "Out of chaos comes order."
    > > Nietzche
    > > "Mark" <> wrote in message
    > > news:...
    > > > I have been working for quite some time on this issue which in theory
    > > > should be quite simple. The problem is that the Cancel and Save
    > > > events are not fired when their respective buttons are clicked.
    > > >
    > > > I have read several posts which say to put your column generating
    > > > section in the Page_Init section and it will solve the
    > > > problem....however, it hasn't solved mine.
    > > >
    > > > Can somebody please take a look at this and provide any insight if
    > > > possible?
    > > >
    > > > Thanks,
    > > > Mark
    > > >
    > > >
    > > >
    > > >
    > > > Imports System
    > > > Imports System.Data
    > > > Imports System.Data.OleDb
    > > >
    > > > Public Class DynaGrid
    > > >
    > > > Inherits System.Web.UI.Page
    > > > Protected WithEvents plcData As
    > > > System.Web.UI.WebControls.PlaceHolder
    > > > Protected WithEvents dgData As New
    > > > System.Web.UI.WebControls.DataGrid()
    > > >
    > > > #Region " Web Form Designer Generated Code "
    > > >
    > > > 'This call is required by the Web Form Designer.
    > > > <System.Diagnostics.DebuggerStepThrough()> Private Sub
    > > > InitializeComponent()
    > > >
    > > > End Sub
    > > >
    > > > 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.
    > > > BindData()
    > > > InitializeComponent()
    > > > End Sub
    > > >
    > > > #End Region
    > > >
    > > >
    > > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
    > > > System.EventArgs)
    > > >
    > > > End Sub
    > > >
    > > >
    > > > Sub BindData()
    > > > Dim dbConn As New OleDbConnection()
    > > > dbConn.ConnectionString =
    > > >

    > >

    >

    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    > > > Dim oAdapter As New OleDbDataAdapter("SELECT * FROM T_Group ",
    > > > dbConn)
    > > > Dim dsData As New DataSet()
    > > > oAdapter.Fill(dsData)
    > > >
    > > > dgData.AllowPaging = False
    > > > dgData.AllowSorting = False
    > > > dgData.AutoGenerateColumns = False
    > > > 'dgData.EnableViewState = False
    > > >
    > > > Dim x As Integer
    > > > For x = 0 To dsData.Tables(0).Columns.Count - 1
    > > > Dim bcCol As New BoundColumn()
    > > > bcCol.HeaderText = dsData.Tables(0).Columns(x).ColumnName
    > > > bcCol.DataField = dsData.Tables(0).Columns(x).Caption
    > > > dgData.Columns.Add(bcCol)
    > > > bcCol = Nothing
    > > > Next
    > > >
    > > > Dim bcEdit As New EditCommandColumn()
    > > > bcEdit.ButtonType = ButtonColumnType.PushButton
    > > > bcEdit.EditText = "Edit"
    > > > bcEdit.CancelText = "Cancel"
    > > > bcEdit.UpdateText = "Save"
    > > > dgData.Columns.Add(bcEdit)
    > > > bcEdit = Nothing
    > > >
    > > > dgData.DataSource = dsData.Tables(0)
    > > > dgData.DataBind()
    > > >
    > > > AddHandler dgData.CancelCommand, AddressOf dgData_cmdCancel
    > > > AddHandler dgData.EditCommand, AddressOf dgData_cmdEdit
    > > >
    > > > plcData.Controls.Add(dgData)
    > > > End Sub
    > > >
    > > >
    > > > Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > dgData.EditItemIndex = -1
    > > > Response.Write(e.CommandName)
    > > > dgData.DataBind()
    > > > End Sub
    > > >
    > > >
    > > > Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > dgData.EditItemIndex = -1
    > > > Response.Write(e.CommandName)
    > > > dgData.DataBind()
    > > > End Sub
    > > >
    > > >
    > > > Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    > > > Response.Write(e.CommandName)
    > > > dgData.DataBind()
    > > > End Sub
    > > > End Class

    > >
    > >

    >
    >
     
    S. Justin Gengo, Jul 29, 2003
    #4
  5. Mark

    Mark Guest

    Justin,

    I appreciate you taking a look at this.

    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="DynaGrid.aspx.vb"
    Inherits="MMDG.DynaGrid"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>DynaGrid</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema"
    content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:placeHolder ID="plcData" Runat="server"></asp:placeHolder>
    </form>
    </body>
    </HTML>



    "S. Justin Gengo" <> wrote in message
    news:...
    > Mark,
    >
    > Sorry I just wasn't specific. I'll chalk up my lack of presenting a

    logical
    > request to the amount of sleep I had at the time. :)
    >
    > Could you please also post the designer's code. Then I can recreate the
    > entire page and take a look.
    >
    > Sincerely,
    >
    > --
    > S. Justin Gengo, MCP
    > Web Developer
    >
    > Free code library at:
    > www.aboutfortunate.com
    >
    > "Out of chaos comes order."
    > Nietzche
    > "Mark" <> wrote in message
    > news:...
    > > I did post the code.
    > >
    > >
    > > "S. Justin Gengo" <> wrote in message
    > > news:%...
    > > > Mark,
    > > >
    > > > Make sure that viewstate is on and that the grid is recreated every

    page
    > > > load.
    > > >
    > > > If these two things are done it should be working.
    > > >
    > > > If you'd like me to take a look at the code post it and I'll see if I

    > can
    > > > get it to work.
    > > >
    > > > --
    > > > S. Justin Gengo, MCP
    > > > Web Developer
    > > >
    > > > Free code library at:
    > > > www.aboutfortunate.com
    > > >
    > > > "Out of chaos comes order."
    > > > Nietzche
    > > > "Mark" <> wrote in message
    > > > news:...
    > > > > I have been working for quite some time on this issue which in

    theory
    > > > > should be quite simple. The problem is that the Cancel and Save
    > > > > events are not fired when their respective buttons are clicked.
    > > > >
    > > > > I have read several posts which say to put your column generating
    > > > > section in the Page_Init section and it will solve the
    > > > > problem....however, it hasn't solved mine.
    > > > >
    > > > > Can somebody please take a look at this and provide any insight if
    > > > > possible?
    > > > >
    > > > > Thanks,
    > > > > Mark
    > > > >
    > > > >
    > > > >
    > > > >
    > > > > Imports System
    > > > > Imports System.Data
    > > > > Imports System.Data.OleDb
    > > > >
    > > > > Public Class DynaGrid
    > > > >
    > > > > Inherits System.Web.UI.Page
    > > > > Protected WithEvents plcData As
    > > > > System.Web.UI.WebControls.PlaceHolder
    > > > > Protected WithEvents dgData As New
    > > > > System.Web.UI.WebControls.DataGrid()
    > > > >
    > > > > #Region " Web Form Designer Generated Code "
    > > > >
    > > > > 'This call is required by the Web Form Designer.
    > > > > <System.Diagnostics.DebuggerStepThrough()> Private Sub
    > > > > InitializeComponent()
    > > > >
    > > > > End Sub
    > > > >
    > > > > 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.
    > > > > BindData()
    > > > > InitializeComponent()
    > > > > End Sub
    > > > >
    > > > > #End Region
    > > > >
    > > > >
    > > > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
    > > > > System.EventArgs)
    > > > >
    > > > > End Sub
    > > > >
    > > > >
    > > > > Sub BindData()
    > > > > Dim dbConn As New OleDbConnection()
    > > > > dbConn.ConnectionString =
    > > > >
    > > >

    > >

    >

    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    > > > > Dim oAdapter As New OleDbDataAdapter("SELECT * FROM T_Group

    ",
    > > > > dbConn)
    > > > > Dim dsData As New DataSet()
    > > > > oAdapter.Fill(dsData)
    > > > >
    > > > > dgData.AllowPaging = False
    > > > > dgData.AllowSorting = False
    > > > > dgData.AutoGenerateColumns = False
    > > > > 'dgData.EnableViewState = False
    > > > >
    > > > > Dim x As Integer
    > > > > For x = 0 To dsData.Tables(0).Columns.Count - 1
    > > > > Dim bcCol As New BoundColumn()
    > > > > bcCol.HeaderText =

    dsData.Tables(0).Columns(x).ColumnName
    > > > > bcCol.DataField = dsData.Tables(0).Columns(x).Caption
    > > > > dgData.Columns.Add(bcCol)
    > > > > bcCol = Nothing
    > > > > Next
    > > > >
    > > > > Dim bcEdit As New EditCommandColumn()
    > > > > bcEdit.ButtonType = ButtonColumnType.PushButton
    > > > > bcEdit.EditText = "Edit"
    > > > > bcEdit.CancelText = "Cancel"
    > > > > bcEdit.UpdateText = "Save"
    > > > > dgData.Columns.Add(bcEdit)
    > > > > bcEdit = Nothing
    > > > >
    > > > > dgData.DataSource = dsData.Tables(0)
    > > > > dgData.DataBind()
    > > > >
    > > > > AddHandler dgData.CancelCommand, AddressOf dgData_cmdCancel
    > > > > AddHandler dgData.EditCommand, AddressOf dgData_cmdEdit
    > > > >
    > > > > plcData.Controls.Add(dgData)
    > > > > End Sub
    > > > >
    > > > >
    > > > > Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > dgData.EditItemIndex = -1
    > > > > Response.Write(e.CommandName)
    > > > > dgData.DataBind()
    > > > > End Sub
    > > > >
    > > > >
    > > > > Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > dgData.EditItemIndex = -1
    > > > > Response.Write(e.CommandName)
    > > > > dgData.DataBind()
    > > > > End Sub
    > > > >
    > > > >
    > > > > Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    > > > > Response.Write(e.CommandName)
    > > > > dgData.DataBind()
    > > > > End Sub
    > > > > End Class
    > > >
    > > >

    > >
    > >

    >
    >
     
    Mark, Jul 29, 2003
    #5
  6. Mark,

    It took a little while of playing to get it to work, but as it turns out all
    I did was move the Call BindData() statement which is in the Page_Init sub
    so that it is below the call to: InitializeComponent

    (I should have seen it without recreating everything!)

    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()

    Call BindData()

    End Sub

    Sincerely,

    --
    S. Justin Gengo, MCP
    Web Developer

    Free code library at:
    www.aboutfortunate.com

    "Out of chaos comes order."
    Nietzche
    "Mark" <> wrote in message
    news:%...
    > Justin,
    >
    > I appreciate you taking a look at this.
    >
    > <%@ Page Language="vb" AutoEventWireup="false"

    Codebehind="DynaGrid.aspx.vb"
    > Inherits="MMDG.DynaGrid"%>
    > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    > <HTML>
    > <HEAD>
    > <title>DynaGrid</title>
    > <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    > <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    > <meta name="vs_defaultClientScript" content="JavaScript">
    > <meta name="vs_targetSchema"
    > content="http://schemas.microsoft.com/intellisense/ie5">
    > </HEAD>
    > <body MS_POSITIONING="GridLayout">
    > <form id="Form1" method="post" runat="server">
    > <asp:placeHolder ID="plcData" Runat="server"></asp:placeHolder>
    > </form>
    > </body>
    > </HTML>
    >
    >
    >
    > "S. Justin Gengo" <> wrote in message
    > news:...
    > > Mark,
    > >
    > > Sorry I just wasn't specific. I'll chalk up my lack of presenting a

    > logical
    > > request to the amount of sleep I had at the time. :)
    > >
    > > Could you please also post the designer's code. Then I can recreate the
    > > entire page and take a look.
    > >
    > > Sincerely,
    > >
    > > --
    > > S. Justin Gengo, MCP
    > > Web Developer
    > >
    > > Free code library at:
    > > www.aboutfortunate.com
    > >
    > > "Out of chaos comes order."
    > > Nietzche
    > > "Mark" <> wrote in message
    > > news:...
    > > > I did post the code.
    > > >
    > > >
    > > > "S. Justin Gengo" <> wrote in message
    > > > news:%...
    > > > > Mark,
    > > > >
    > > > > Make sure that viewstate is on and that the grid is recreated every

    > page
    > > > > load.
    > > > >
    > > > > If these two things are done it should be working.
    > > > >
    > > > > If you'd like me to take a look at the code post it and I'll see if

    I
    > > can
    > > > > get it to work.
    > > > >
    > > > > --
    > > > > S. Justin Gengo, MCP
    > > > > Web Developer
    > > > >
    > > > > Free code library at:
    > > > > www.aboutfortunate.com
    > > > >
    > > > > "Out of chaos comes order."
    > > > > Nietzche
    > > > > "Mark" <> wrote in message
    > > > > news:...
    > > > > > I have been working for quite some time on this issue which in

    > theory
    > > > > > should be quite simple. The problem is that the Cancel and Save
    > > > > > events are not fired when their respective buttons are clicked.
    > > > > >
    > > > > > I have read several posts which say to put your column generating
    > > > > > section in the Page_Init section and it will solve the
    > > > > > problem....however, it hasn't solved mine.
    > > > > >
    > > > > > Can somebody please take a look at this and provide any insight if
    > > > > > possible?
    > > > > >
    > > > > > Thanks,
    > > > > > Mark
    > > > > >
    > > > > >
    > > > > >
    > > > > >
    > > > > > Imports System
    > > > > > Imports System.Data
    > > > > > Imports System.Data.OleDb
    > > > > >
    > > > > > Public Class DynaGrid
    > > > > >
    > > > > > Inherits System.Web.UI.Page
    > > > > > Protected WithEvents plcData As
    > > > > > System.Web.UI.WebControls.PlaceHolder
    > > > > > Protected WithEvents dgData As New
    > > > > > System.Web.UI.WebControls.DataGrid()
    > > > > >
    > > > > > #Region " Web Form Designer Generated Code "
    > > > > >
    > > > > > 'This call is required by the Web Form Designer.
    > > > > > <System.Diagnostics.DebuggerStepThrough()> Private Sub
    > > > > > InitializeComponent()
    > > > > >
    > > > > > End Sub
    > > > > >
    > > > > > 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.
    > > > > > BindData()
    > > > > > InitializeComponent()
    > > > > > End Sub
    > > > > >
    > > > > > #End Region
    > > > > >
    > > > > >
    > > > > > Private Sub Page_Load(ByVal sender As System.Object, ByVal e

    As
    > > > > > System.EventArgs)
    > > > > >
    > > > > > End Sub
    > > > > >
    > > > > >
    > > > > > Sub BindData()
    > > > > > Dim dbConn As New OleDbConnection()
    > > > > > dbConn.ConnectionString =
    > > > > >
    > > > >
    > > >

    > >

    >

    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    > > > > > Dim oAdapter As New OleDbDataAdapter("SELECT * FROM

    T_Group
    > ",
    > > > > > dbConn)
    > > > > > Dim dsData As New DataSet()
    > > > > > oAdapter.Fill(dsData)
    > > > > >
    > > > > > dgData.AllowPaging = False
    > > > > > dgData.AllowSorting = False
    > > > > > dgData.AutoGenerateColumns = False
    > > > > > 'dgData.EnableViewState = False
    > > > > >
    > > > > > Dim x As Integer
    > > > > > For x = 0 To dsData.Tables(0).Columns.Count - 1
    > > > > > Dim bcCol As New BoundColumn()
    > > > > > bcCol.HeaderText =

    > dsData.Tables(0).Columns(x).ColumnName
    > > > > > bcCol.DataField = dsData.Tables(0).Columns(x).Caption
    > > > > > dgData.Columns.Add(bcCol)
    > > > > > bcCol = Nothing
    > > > > > Next
    > > > > >
    > > > > > Dim bcEdit As New EditCommandColumn()
    > > > > > bcEdit.ButtonType = ButtonColumnType.PushButton
    > > > > > bcEdit.EditText = "Edit"
    > > > > > bcEdit.CancelText = "Cancel"
    > > > > > bcEdit.UpdateText = "Save"
    > > > > > dgData.Columns.Add(bcEdit)
    > > > > > bcEdit = Nothing
    > > > > >
    > > > > > dgData.DataSource = dsData.Tables(0)
    > > > > > dgData.DataBind()
    > > > > >
    > > > > > AddHandler dgData.CancelCommand, AddressOf

    dgData_cmdCancel
    > > > > > AddHandler dgData.EditCommand, AddressOf dgData_cmdEdit
    > > > > >
    > > > > > plcData.Controls.Add(dgData)
    > > > > > End Sub
    > > > > >
    > > > > >
    > > > > > Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    > > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > > dgData.EditItemIndex = -1
    > > > > > Response.Write(e.CommandName)
    > > > > > dgData.DataBind()
    > > > > > End Sub
    > > > > >
    > > > > >
    > > > > > Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    > > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > > dgData.EditItemIndex = -1
    > > > > > Response.Write(e.CommandName)
    > > > > > dgData.DataBind()
    > > > > > End Sub
    > > > > >
    > > > > >
    > > > > > Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    > > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > > dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    > > > > > Response.Write(e.CommandName)
    > > > > > dgData.DataBind()
    > > > > > End Sub
    > > > > > End Class
    > > > >
    > > > >
    > > >
    > > >

    > >
    > >

    >
    >
     
    S. Justin Gengo, Jul 30, 2003
    #6
  7. Mark,

    Everything seems to be working for me. I would suggest however that you look
    into creating your datagrid in a user control and add the user control to
    the page dynamically. That way a lot of the page rendering and post back
    event handlers are created for you.

    Take a look at the code I offer on my website: www.aboutfortunate.com on
    placing user control's on a page dynamically. It should get you started.

    Just search for: Dynamic User Controls

    I hope this helps.

    --
    S. Justin Gengo, MCP
    Web Developer

    Free code library at:
    www.aboutfortunate.com

    "Out of chaos comes order."
    Nietzche
    "Mark" <> wrote in message
    news:...
    > Justin,
    >
    > Thanks for looking at this.
    >
    > How many times does the dgData_cmdEdit event get called when you request

    the
    > page? Every time I request the page, this event runs twice (I don't have
    > Zone Alarm). If I remove the AddHandler section, then it only runs once.
    > It's as though the AddHandler actually forces the event to run when it's
    > created.
    >
    > I have never been able to ge the Save or Cancel events to fire under any
    > circumstance.
    >
    > Another issue I have found: if you click on the edit button for the first
    > item in the grid, it goes into edit mode. If you then click on the edit
    > button for the second item in the list it wil go into edit mode. Then, if
    > you go back to the first item and click on Edit, it will not go into edit
    > mode (edit mode stays on the second line).
    >
    > I originally thought this was due to viewstate for the dg, but even
    > disabling it did not work.
    >
    > Thanks,
    > MM
    >
    >
    > "S. Justin Gengo" <> wrote in message
    > news:eCYy$...
    > > Mark,
    > >
    > > It took a little while of playing to get it to work, but as it turns out

    > all
    > > I did was move the Call BindData() statement which is in the Page_Init

    sub
    > > so that it is below the call to: InitializeComponent
    > >
    > > (I should have seen it without recreating everything!)
    > >
    > > 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()
    > >
    > > Call BindData()
    > >
    > > End Sub
    > >
    > > Sincerely,
    > >
    > > --
    > > S. Justin Gengo, MCP
    > > Web Developer
    > >
    > > Free code library at:
    > > www.aboutfortunate.com
    > >
    > > "Out of chaos comes order."
    > > Nietzche
    > > "Mark" <> wrote in message
    > > news:%...
    > > > Justin,
    > > >
    > > > I appreciate you taking a look at this.
    > > >
    > > > <%@ Page Language="vb" AutoEventWireup="false"

    > > Codebehind="DynaGrid.aspx.vb"
    > > > Inherits="MMDG.DynaGrid"%>
    > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    > > > <HTML>
    > > > <HEAD>
    > > > <title>DynaGrid</title>
    > > > <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    > > > <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    > > > <meta name="vs_defaultClientScript" content="JavaScript">
    > > > <meta name="vs_targetSchema"
    > > > content="http://schemas.microsoft.com/intellisense/ie5">
    > > > </HEAD>
    > > > <body MS_POSITIONING="GridLayout">
    > > > <form id="Form1" method="post" runat="server">
    > > > <asp:placeHolder ID="plcData" Runat="server"></asp:placeHolder>
    > > > </form>
    > > > </body>
    > > > </HTML>
    > > >
    > > >
    > > >
    > > > "S. Justin Gengo" <> wrote in message
    > > > news:...
    > > > > Mark,
    > > > >
    > > > > Sorry I just wasn't specific. I'll chalk up my lack of presenting a
    > > > logical
    > > > > request to the amount of sleep I had at the time. :)
    > > > >
    > > > > Could you please also post the designer's code. Then I can recreate

    > the
    > > > > entire page and take a look.
    > > > >
    > > > > Sincerely,
    > > > >
    > > > > --
    > > > > S. Justin Gengo, MCP
    > > > > Web Developer
    > > > >
    > > > > Free code library at:
    > > > > www.aboutfortunate.com
    > > > >
    > > > > "Out of chaos comes order."
    > > > > Nietzche
    > > > > "Mark" <> wrote in message
    > > > > news:...
    > > > > > I did post the code.
    > > > > >
    > > > > >
    > > > > > "S. Justin Gengo" <> wrote in message
    > > > > > news:%...
    > > > > > > Mark,
    > > > > > >
    > > > > > > Make sure that viewstate is on and that the grid is recreated

    > every
    > > > page
    > > > > > > load.
    > > > > > >
    > > > > > > If these two things are done it should be working.
    > > > > > >
    > > > > > > If you'd like me to take a look at the code post it and I'll see

    > if
    > > I
    > > > > can
    > > > > > > get it to work.
    > > > > > >
    > > > > > > --
    > > > > > > S. Justin Gengo, MCP
    > > > > > > Web Developer
    > > > > > >
    > > > > > > Free code library at:
    > > > > > > www.aboutfortunate.com
    > > > > > >
    > > > > > > "Out of chaos comes order."
    > > > > > > Nietzche
    > > > > > > "Mark" <> wrote in message
    > > > > > > news:...
    > > > > > > > I have been working for quite some time on this issue which in
    > > > theory
    > > > > > > > should be quite simple. The problem is that the Cancel and

    Save
    > > > > > > > events are not fired when their respective buttons are

    clicked.
    > > > > > > >
    > > > > > > > I have read several posts which say to put your column

    > generating
    > > > > > > > section in the Page_Init section and it will solve the
    > > > > > > > problem....however, it hasn't solved mine.
    > > > > > > >
    > > > > > > > Can somebody please take a look at this and provide any

    insight
    > if
    > > > > > > > possible?
    > > > > > > >
    > > > > > > > Thanks,
    > > > > > > > Mark
    > > > > > > >
    > > > > > > >
    > > > > > > >
    > > > > > > >
    > > > > > > > Imports System
    > > > > > > > Imports System.Data
    > > > > > > > Imports System.Data.OleDb
    > > > > > > >
    > > > > > > > Public Class DynaGrid
    > > > > > > >
    > > > > > > > Inherits System.Web.UI.Page
    > > > > > > > Protected WithEvents plcData As
    > > > > > > > System.Web.UI.WebControls.PlaceHolder
    > > > > > > > Protected WithEvents dgData As New
    > > > > > > > System.Web.UI.WebControls.DataGrid()
    > > > > > > >
    > > > > > > > #Region " Web Form Designer Generated Code "
    > > > > > > >
    > > > > > > > 'This call is required by the Web Form Designer.
    > > > > > > > <System.Diagnostics.DebuggerStepThrough()> Private Sub
    > > > > > > > InitializeComponent()
    > > > > > > >
    > > > > > > > End Sub
    > > > > > > >
    > > > > > > > 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.
    > > > > > > > BindData()
    > > > > > > > InitializeComponent()
    > > > > > > > End Sub
    > > > > > > >
    > > > > > > > #End Region
    > > > > > > >
    > > > > > > >
    > > > > > > > Private Sub Page_Load(ByVal sender As System.Object, ByVal

    e
    > > As
    > > > > > > > System.EventArgs)
    > > > > > > >
    > > > > > > > End Sub
    > > > > > > >
    > > > > > > >
    > > > > > > > Sub BindData()
    > > > > > > > Dim dbConn As New OleDbConnection()
    > > > > > > > dbConn.ConnectionString =
    > > > > > > >
    > > > > > >
    > > > > >
    > > > >
    > > >

    > >

    >

    "provider=sqloledb;Server=SERVERNAME;Database=User;UID=USERID;PWD=PASSWORD"
    > > > > > > > Dim oAdapter As New OleDbDataAdapter("SELECT * FROM

    > > T_Group
    > > > ",
    > > > > > > > dbConn)
    > > > > > > > Dim dsData As New DataSet()
    > > > > > > > oAdapter.Fill(dsData)
    > > > > > > >
    > > > > > > > dgData.AllowPaging = False
    > > > > > > > dgData.AllowSorting = False
    > > > > > > > dgData.AutoGenerateColumns = False
    > > > > > > > 'dgData.EnableViewState = False
    > > > > > > >
    > > > > > > > Dim x As Integer
    > > > > > > > For x = 0 To dsData.Tables(0).Columns.Count - 1
    > > > > > > > Dim bcCol As New BoundColumn()
    > > > > > > > bcCol.HeaderText =
    > > > dsData.Tables(0).Columns(x).ColumnName
    > > > > > > > bcCol.DataField =

    > dsData.Tables(0).Columns(x).Caption
    > > > > > > > dgData.Columns.Add(bcCol)
    > > > > > > > bcCol = Nothing
    > > > > > > > Next
    > > > > > > >
    > > > > > > > Dim bcEdit As New EditCommandColumn()
    > > > > > > > bcEdit.ButtonType = ButtonColumnType.PushButton
    > > > > > > > bcEdit.EditText = "Edit"
    > > > > > > > bcEdit.CancelText = "Cancel"
    > > > > > > > bcEdit.UpdateText = "Save"
    > > > > > > > dgData.Columns.Add(bcEdit)
    > > > > > > > bcEdit = Nothing
    > > > > > > >
    > > > > > > > dgData.DataSource = dsData.Tables(0)
    > > > > > > > dgData.DataBind()
    > > > > > > >
    > > > > > > > AddHandler dgData.CancelCommand, AddressOf

    > > dgData_cmdCancel
    > > > > > > > AddHandler dgData.EditCommand, AddressOf

    dgData_cmdEdit
    > > > > > > >
    > > > > > > > plcData.Controls.Add(dgData)
    > > > > > > > End Sub
    > > > > > > >
    > > > > > > >
    > > > > > > > Sub dgData_cmdSave(ByVal sender As Object, ByVal e As
    > > > > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > > > > dgData.EditItemIndex = -1
    > > > > > > > Response.Write(e.CommandName)
    > > > > > > > dgData.DataBind()
    > > > > > > > End Sub
    > > > > > > >
    > > > > > > >
    > > > > > > > Sub dgData_cmdCancel(ByVal sender As Object, ByVal e As
    > > > > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > > > > dgData.EditItemIndex = -1
    > > > > > > > Response.Write(e.CommandName)
    > > > > > > > dgData.DataBind()
    > > > > > > > End Sub
    > > > > > > >
    > > > > > > >
    > > > > > > > Sub dgData_cmdEdit(ByVal sender As Object, ByVal e As
    > > > > > > > System.Web.UI.WebControls.DataGridCommandEventArgs)
    > > > > > > > dgData.EditItemIndex = CInt(e.Item.ItemIndex)
    > > > > > > > Response.Write(e.CommandName)
    > > > > > > > dgData.DataBind()
    > > > > > > > End Sub
    > > > > > > > End Class
    > > > > > >
    > > > > > >
    > > > > >
    > > > > >
    > > > >
    > > > >
    > > >
    > > >

    > >
    > >

    >
    >
     
    S. Justin Gengo, Aug 3, 2003
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    1,682
  2. Hennie

    Page events does not fire

    Hennie, Jul 6, 2006, in forum: ASP .Net
    Replies:
    0
    Views:
    332
    Hennie
    Jul 6, 2006
  3. =?Utf-8?B?Sm9yZ2UgUmliZWlybw==?=

    Dinamically created webcontrol does not fire events

    =?Utf-8?B?Sm9yZ2UgUmliZWlybw==?=, May 24, 2007, in forum: ASP .Net
    Replies:
    2
    Views:
    400
    =?Utf-8?B?Sm9yZ2UgUmliZWlybw==?=
    May 25, 2007
  4. Jean-Pierre Fouche

    Dynamic Datagrid with TextBoxes Textchanged events wont fire

    Jean-Pierre Fouche, Jul 28, 2003, in forum: ASP .Net Datagrid Control
    Replies:
    1
    Views:
    216
    Cristian Suazo
    Jul 29, 2003
  5. KJ
    Replies:
    1
    Views:
    162
    Teemu Keiski
    Aug 16, 2003
Loading...

Share This Page