Can't reference a datagrid cell

Discussion in 'ASP .Net Datagrid Control' started by Steve, Apr 1, 2004.

  1. Steve

    Steve Guest

    Hi All,

    I'm developing a set of custom controls for a trouble ticket website.
    I have a class that handles accessing the database for calls such as
    add a ticket, view a ticket given an id and view a list of tickets.

    I have subsequent custom controls that take care of rendering the
    relevant data on the page. Such as ViewTicket ViewTicketList, etc.

    Everything is going just fine, except for one thing, herein lies my
    problem.

    My ViewTicketList control displays a datagrid where one of the columns
    is a ButtonColumn that is a link button whose datatextfield is the
    ticketId. The user should click on this button to view the details of
    the ticket, that are then displayed using my ViewTicket control.

    How do I get to the ticketId?

    Thanks in advance. Hopefully, I've provided all the information you
    may need.


    Code for ViewTicketList is as follows:

    Imports System.ComponentModel
    Imports System.Web.UI

    <ToolboxData("<{0}:ViewTicketList
    runat=server></{0}:ViewTicketList>")> _
    Public Class ViewTicketList
    Inherits Control
    Implements INamingContainer

    Dim _statusMessage As String
    Dim _ticketID As Integer

    Private WithEvents ticketGrid As WebControls.DataGrid
    Private ticket As New ticket
    Private ticketlist As DataModels.TicketList = ticket.TicketList

    Public Event DisplayListSuccess As EventHandler
    Public Event DisplayListFailure As EventHandler
    Public Event TicketSelected As EventHandler

    #Region "Properties"
    <Bindable(False), Browsable(False)> _
    ReadOnly Property StatusMessage() As String
    Get
    Return _statusMessage
    End Get
    End Property

    <Bindable(False), Browsable(False)> _
    ReadOnly Property TicketID() As Integer
    Get
    Return _ticketID
    End Get
    End Property
    #End Region

    Protected Overrides Sub CreateChildControls()
    ticketGrid = New WebControls.DataGrid
    ticketGrid.AutoGenerateColumns = False

    Dim ticketId As New WebControls.ButtonColumn
    ticketId.HeaderText = "Ticket"
    ticketId.DataTextField = "ticketId"
    ticketId.ButtonType = WebControls.ButtonColumnType.LinkButton
    ticketGrid.Columns.Add(ticketId)

    Dim summary As New WebControls.BoundColumn
    summary.HeaderText = "Summary"
    summary.DataField = "summary"
    summary.ItemStyle.Width = New WebControls.Unit(400)
    ticketGrid.Columns.Add(summary)

    Dim status As New WebControls.BoundColumn
    status.HeaderText = "Status"
    status.DataField = "status"
    status.ItemStyle.Width = New WebControls.Unit(100)
    status.ItemStyle.HorizontalAlign =
    WebControls.HorizontalAlign.Center
    ticketGrid.Columns.Add(status)

    Dim dateOpened As New WebControls.BoundColumn
    dateOpened.HeaderText = "Date Opened"
    dateOpened.DataField = "dateOpen"
    ticketGrid.Columns.Add(dateOpened)

    Me.Controls.Add(ticketGrid)
    End Sub

    Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)

    If ticket.ViewList() Then
    ticketGrid.DataSource = ticketlist
    ticketGrid.DataKeyField = "ticketId"
    ticketGrid.DataBind()
    _statusMessage = ticket.StatusMessage
    RaiseEvent DisplayListSuccess(Me, EventArgs.Empty)
    Else
    _statusMessage = ticket.StatusMessage
    RaiseEvent DisplayListFailure(Me, EventArgs.Empty)
    End If
    End Sub

    Private Sub ticketGrid_ItemCommand(ByVal source As Object, ByVal e
    As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles
    ticketGrid.ItemCommand

    _statusMessage = "Ticket " & _ticketID & " selected."
    RaiseEvent TicketSelected(Me, EventArgs.Empty)
    End Sub
    End Class

    In my aspx page I have:

    Private Sub ViewTicketList1_TicketSelected(ByVal sender As Object,
    ByVal e As System.EventArgs) Handles ViewTicketList1.TicketSelected
    ViewTicket1.TicketId = ViewTicketList1.TicketID
    ViewTicket1.Visible = True
    End Sub

    The Ticket.ViewList function is:

    Public Function ViewList() As Boolean
    Dim conn As New
    SqlConnection(ConfigurationSettings.AppSettings("DBConnectionString"))
    Dim sqlGetTickets As New SqlCommand("supportTickets", conn)
    sqlGetTickets.CommandType = CommandType.StoredProcedure
    _DataAdapter.SelectCommand = sqlGetTickets
    _DataAdapter.TableMappings.AddRange(New
    System.Data.Common.DataTableMapping() { _
    New System.Data.Common.DataTableMapping("Table",
    "TicketList", _
    New System.Data.Common.DataColumnMapping() { _
    New System.Data.Common.DataColumnMapping("ticketId",
    "ticketId"), _
    New System.Data.Common.DataColumnMapping("productId",
    "productId"), _
    New System.Data.Common.DataColumnMapping("statusId",
    "statusId"), _
    New System.Data.Common.DataColumnMapping("summary",
    "summary"), _
    New System.Data.Common.DataColumnMapping("description",
    "description"), _
    New System.Data.Common.DataColumnMapping("dateOpen",
    "dateOpen"), _
    New System.Data.Common.DataColumnMapping("status",
    "status"), _
    New System.Data.Common.DataColumnMapping("productName",
    "productName"), _
    New System.Data.Common.DataColumnMapping("version",
    "version"), _
    New System.Data.Common.DataColumnMapping("contactId",
    "contactId"), _
    New System.Data.Common.DataColumnMapping("companyId",
    "companyId"), _
    New System.Data.Common.DataColumnMapping("firstName",
    "firstName"), _
    New System.Data.Common.DataColumnMapping("lastName",
    "lastName"), _
    New System.Data.Common.DataColumnMapping("email",
    "email"), _
    New System.Data.Common.DataColumnMapping("username",
    "username"), _
    New System.Data.Common.DataColumnMapping("companyName",
    "companyName")})})
    Try
    conn.Open()
    _DataAdapter.Fill(_Ticketlist)
    _StatusMessage = "Successfully retrieved tickets."
    Return True
    Catch ex As Exception
    _StatusMessage = "Failed to retrieve tickets." &
    ex.Message
    Return False
    Finally
    conn.Close()
    End Try
    End Function
     
    Steve, Apr 1, 2004
    #1
    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. =?Utf-8?B?TXJNaWtl?=

    Reference Datagrid cell contents

    =?Utf-8?B?TXJNaWtl?=, Mar 30, 2005, in forum: ASP .Net
    Replies:
    3
    Views:
    3,336
    taersious
    Mar 11, 2010
  2. Empire City
    Replies:
    3
    Views:
    431
    Empire City
    Apr 30, 2004
  3. RJ
    Replies:
    1
    Views:
    259
    Eliyahu Goldin
    Feb 17, 2005
  4. Rob R. Ainscough

    GridView - can't reference value of a non-visible cell??

    Rob R. Ainscough, Mar 29, 2006, in forum: ASP .Net Web Controls
    Replies:
    5
    Views:
    154
    Christopher Reed
    Mar 30, 2006
  5. janetb

    datagrid itemIndex cell reference

    janetb, May 10, 2006, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    180
    janetb
    May 10, 2006
Loading...

Share This Page