markej
asked on
Shopping Cart does read textbox value from gridview
I have a gridview with a selection of databound items as well as a textbox and a button, the purpose of the textbox is to allow the user to enter the quantity required and then click on the button which will save the data and show the shopping cart. The textbox is in a itemtemplate tag, and the client doesn't want to select the row (ie edit mode) then add the value.
The problem is I can't get access to the textbox value I either get no value or an "object reference not found error" Surely there is some way of doing this? I have tried various methods ie :-
Dim tmpqty As TextBox = Me.GridView1.SelectedRow.C ells(4).Co ntrols(0)
Dim tmpqty As TextBox = CType(Me.GridView1.FindCon trol("Text Box1"), TextBox)
etc
in various events BUT NOTHING WORKS HELP!!!
The problem is I can't get access to the textbox value I either get no value or an "object reference not found error" Surely there is some way of doing this? I have tried various methods ie :-
Dim tmpqty As TextBox = Me.GridView1.SelectedRow.C
Dim tmpqty As TextBox = CType(Me.GridView1.FindCon
etc
in various events BUT NOTHING WORKS HELP!!!
Imports System.Data.SqlClient
Imports System.Data
Partial Public Class OnDemandLine
Inherits System.Web.UI.Page
Public cnstring As String
Private Sub OnDemandLine_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Select Case Request.Item("t")
Case "ond"
CType(Me.Master.FindControl("lblPageTitle"), Label).Text = "On Demand Product Lines"
ViewState("type") = 3
Case "bwrk"
CType(Me.Master.FindControl("lblPageTitle"), Label).Text = "Bespoke Workbooks"
ViewState("type") = 4
Case "std", "pblc"
Response.Redirect("standardproductline.aspx?t=" & Request.Item("t"))
Case Else
Response.Redirect("standardproductline.aspx?t=" & Request.Item("t"))
End Select
cnstring = ConfigurationManager.ConnectionStrings("Rogensi").ConnectionString
If Not Me.IsPostBack Then
binddata()
End If
End Sub
Sub binddata()
Dim cmd As Data.SqlClient.SqlCommand
Dim da As New Data.SqlClient.SqlDataAdapter
Dim ds As New DataSet
Dim cn As New Data.SqlClient.SqlConnection
cn.ConnectionString = cnstring
cmd = New Data.SqlClient.SqlCommand
cmd.CommandText = "showproductline"
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = cn
Dim pagep As New SqlParameter("@type", ViewState("type")) 'ViewState("id")) '
cmd.Parameters.Add(pagep)
da.SelectCommand = cmd
da.Fill(ds)
Me.GridView1.DataSource = ds.Tables(0)
Me.GridView1.DataBind()
da.Dispose()
cmd.Dispose()
cn.Close()
End Sub
--------------ASPX page---------------
<%@ Page Language="vb" AutoEventWireup="false" MasterPageFile="~/RogenSi/Site1.Master" CodeBehind="OnDemandLine.aspx.vb" Inherits="RogenSi.OnDemandLine"
title="On Product Line" %>
<%@ MasterType VirtualPath="~/RogenSi/Site1.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderStyle="None" GridLines="None" HorizontalAlign="Left" DataKeyNames="id">
<Columns>
<asp:ImageField DataAlternateTextField="title" DataImageUrlField="image" DataImageUrlFormatString="~/siteimages/{0}" HeaderText="Item">
<ItemStyle Height="50px" Width="50px" />
</asp:ImageField>
<asp:TemplateField HeaderText="Short Description" SortExpression="SDescription">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Title") %>'></asp:Label><br />
<asp:Label ID="Label2" runat="server" Text='<%# Bind("SDescription") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="UnitPrice" HeaderText="Unit Price" SortExpression="UnitPrice" />
<asp:BoundField DataField="StockLevel" HeaderText="Stock Qty" SortExpression="StockLevel" />
<asp:TemplateField HeaderText="Order Qty">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Width="50px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="select" Text="ADD" />
<asp:BoundField DataField="LeadTime" HeaderText="LeadTime" SortExpression="LeadTime" Visible="False" />
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
<asp:BoundField DataField="ProductType" HeaderText="ProductType" SortExpression="ProductType"
Visible="False" />
<asp:BoundField DataField="ReStockLevel" HeaderText="ReStockLevel" SortExpression="ReStockLevel" Visible="False" />
</Columns>
<EmptyDataTemplate>
Sorry there is no data for this category
</EmptyDataTemplate>
</asp:GridView><br />
<asp:Label ID="Label3" runat="server" Text="Label4"></asp:Label>
</asp:Content>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
The actual syntax is this and it seems to work So Thanks!
Mark
Private Sub GridView1_SelectedIndexCha nged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexCha nged
Dim tmpqty As TextBox = CType(Me.GridView1.Selecte dRow.FindC ontrol("Te xtBox1"), TextBox)
Response.Redirect("orderde tail.aspx? qty=" & tmpqty.Text)
End Sub
Mark
Private Sub GridView1_SelectedIndexCha
Dim tmpqty As TextBox = CType(Me.GridView1.Selecte
Response.Redirect("orderde
End Sub
ASKER
Thanks for the soln, the syntax was slightly out BUT you gave me the correct pointer/idea
Mark
Mark
ASKER