Solved

Passing parameter from one page to another

Posted on 2006-11-01
6
1,298 Views
Last Modified: 2007-12-19
I am trying to transger the ID field value of the SELECTED row (in the datagrid GRIDVIEWMEETINGS) which is
<asp:HyperLinkField HeaderText="ATTENDEES" NavigateUrl="attendees_list.aspx" Target="_parent" Text="VIEW" datanavigateurlfields="ID" DataNavigateUrlFormatString="attendees_list.aspx?ID={0}"/>

The destination page is not receiving the Parameter "ID" from the source page - selected row.

On the destination page, If I manually put the ID in, I get the expected results - so, I feel that I am not passing the parameter in the proper way.



SOURCE PAGE CODE: .ASPX
<%@ Page Language="VB" MasterPageFile="~/MasterPage2.master" AutoEventWireup="false" CodeFile="MeetingCalendar.aspx.vb" Inherits="SALES_CALENDARS_MeetingCalendar" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                <div style="z-index: 102; left: 168px; width: 384px; position: absolute; top: 0px;
                    height: 48px">
                    <asp:Label ID="lblPayrollCalendar" runat="server" BackColor="DarkTurquoise" BorderColor="Silver"
                        BorderStyle="Inset" Font-Bold="True" Font-Names="Arial Narrow" Font-Size="X-Large"
                        ForeColor="Navy" Height="34px" Style="left: 24px; vertical-align: middle; position: absolute;
                        top: 0px; text-align: center" Text="SALES/MARKETING MEETINGS" Width="320px"></asp:Label>
                </div>
                <div id="daydetail" runat="server" visible="false">

      <span id="daydetail_render" runat="server" />&nbsp;</div>

    &nbsp;                
    <asp:GridView ID="GridViewMeetings" runat="server" AllowPaging="True" AllowSorting="True"
        AutoGenerateColumns="False" BackColor="White" BorderColor="#3366CC" BorderStyle="None"
        BorderWidth="1px" CellPadding="4" DataSourceID="GetMeetingInfo" Style="left: 40px;
        position: absolute; top: 48px; font-size: small; font-family: 'Arial Narrow'; z-index: 100;" Width="624px" DataKeyNames="id">
        <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
        <Columns>
            <asp:HyperLinkField HeaderText="ATTENDEES" NavigateUrl="attendees_list.aspx" Target="_parent"
                Text="VIEW" datanavigateurlfields="ID" DataNavigateUrlFormatString="attendees_list.aspx?ID={0}"/>
            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                ShowHeader="False" SortExpression="id" Visible="False" />
            <asp:BoundField DataField="MEETING" HeaderText="MEETING" SortExpression="MEETING" />
            <asp:BoundField DataField="PROMOCODE" HeaderText="PROMOCODE" SortExpression="PROMOCODE" />
            <asp:BoundField DataField="CITY" HeaderText="CITY" SortExpression="CITY" />
            <asp:BoundField DataField="START" HeaderText="START" SortExpression="START" />
            <asp:BoundField DataField="END" HeaderText="END" SortExpression="END" />
            <asp:BoundField DataField="COORDINATOR" HeaderText="COORDINATOR" ReadOnly="True" SortExpression="COORDINATOR" />
        </Columns>
        <RowStyle BackColor="White" ForeColor="#003399" />
        <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
        <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
        <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
    </asp:GridView>
    <asp:SqlDataSource ID="GetMeetingAttendees" runat="server" ConnectionString="<%$ ConnectionStrings:OCUSOFTCENTRALConnectionString %>"
        SelectCommand="Intranet_sp_Meeting_Get_Attendees_for_Event" SelectCommandType="StoredProcedure">
        <SelectParameters>
            <asp:ControlParameter ControlID="GridViewMeetings" Name="ID" PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>
        <asp:SqlDataSource ID="GetMeetingInfo" runat="server" ConnectionString="<%$ ConnectionStrings:OCUSOFTCENTRALConnectionString %>"
                    SelectCommand="Intranet_sp_Meeting_Get_Items"
                    SelectCommandType="StoredProcedure" >
        </asp:SqlDataSource>
</asp:Content>

SOURCE PAGE - CODE BEHIND: .ASPX.VB
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Data
Imports System.Data.Sql
Imports System.Drawing
Imports System.Web
Imports System.Web.SessionState
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Imports System.Data.SqlClient
Imports System.Web.Security
Public Class SALES_CALENDARS_MeetingCalendar
    Inherits System.Web.UI.Page
    'Protected Function SelectedID(ByVal id As Integer) As Integer
    '    Dim meetid As Integer
    '    meetid = GridViewMeetings.SelectedIndex.ToString()
    '    Return meetid
    'End Function


    'Protected Sub GridViewMeetings_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridViewMeetings.SelectedIndexChanged
    '    'Label1.Visible = True
    '    'Label1.Text = GridViewMeetings.SelectedValue("ID")
    '    Session.Add("ID", "ID")
    '    Server.Transfer("attendees_list.aspx", True)

    'End Sub

    Protected Sub GridViewMeetings_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridViewMeetings.SelectedIndexChanging
        Session.Add("ID", "ID")
        Server.Transfer("attendees_list.aspx", True)

    End Sub
End Class

The DESTINATION PAGE SOURCE CODE IS:
<%@ Page Language="VB" MasterPageFile="~/MasterPage2.master" AutoEventWireup="false" CodeFile="attendees_list.aspx.vb" Inherits="SALES_CALENDARS_attendees_list" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server" EnableViewState="false">
    <table border="0" cellpadding="0" cellspacing="0" style="width: 88%; position: static;
        height: 100%">
        <tr>
            <td style="height: 25%">
                <asp:Label ID="lblAttendeesList" runat="server" Style="font-weight: bold; font-size: medium;
                    font-family: 'Arial Narrow'; position: static; text-align: center" Width="624px"></asp:Label></td>
        </tr>
        <tr>
            <td height="75%" style="text-align: center">
                <asp:DetailsView ID="DetailsViewMeetAttendees" runat="server" BackColor="White"
                    BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="4" DataSourceID="MeetingAttendeesList"
                    Height="50px" Style="position: static" Width="125px" AutoGenerateRows="False">
                    <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
                    <EditRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
                    <RowStyle BackColor="White" ForeColor="#003399" />
                    <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
                    <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
                </asp:DetailsView>
                <asp:SqlDataSource ID="MeetingAttendeesList" runat="server" ConnectionString="<%$ ConnectionStrings:OCUSOFTCENTRALConnectionString %>"
                    SelectCommand="Intranet_sp_Meeting_Get_Attendees_for_Event" SelectCommandType="StoredProcedure">
                    <SelectParameters>
                        <asp:SessionParameter Name="ID" SessionField="ID" Type="Int32" />
                    </SelectParameters>
                </asp:SqlDataSource>
            </td>
        </tr>
    </table>
</asp:Content>

The DESTINATION PAGE CODEBEHIND CODE is
Partial Class SALES_CALENDARS_attendees_list
    Inherits System.Web.UI.Page

    Protected Sub Page_PreLoad(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreLoad
        Dim meetid As Integer
        meetid = Session.Item("id")

    End Sub
End Class

The SQL STORED PROCEDURE FOR THE DESTINATION PAGE IS:
CREATE PROCEDURE Intranet_sp_Meeting_Get_Attendees_for_Event
(
      @ID int
)
AS
select e.[first name]+' '+e.[last name] EMPLOYEE
from meetingattendees a
inner join employees e on e.emp_id = a.attendee
where a.meeting_id = @ID
GO


What am I missing?

Sean
0
Comment
Question by:saladart
  • 3
  • 3
6 Comments
 
LVL 11

Expert Comment

by:ethoths
ID: 17851753
I've not looked too closley but I recon you need to BIND the id rather the simply state it something like...

<asp:HyperLinkField HeaderText="ATTENDEES" NavigateUrl="attendees_list.aspx" Target="_parent"
                Text="VIEW" datanavigateurlfields='<%# Bind("id") %>' DataNavigateUrlFormatString="attendees_list.aspx?ID={0}"/>
0
 

Author Comment

by:saladart
ID: 17851906
ethoths,

Applying your recommendation yields the below error when I open the page - it compiles but errors out when I run it...

The HyperLinkField control with a two-way databinding to field id must have an ID.

Sean
0
 
LVL 11

Expert Comment

by:ethoths
ID: 17853474
Put an ID on the hyperlink! id="AnythingThatIsUniqueWillDo"

ASP.Net often complains that some controls dont have an ID even though you don't actually need to refer to the control yourself. It's jus one of the ASP.Net things.

0
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 

Author Comment

by:saladart
ID: 17854099
The ASP:HYPERLINKFIELD control does not have a property of ID....I cannot get it to compile with the ID property in the HYPERLINKFIELD control...

Sean
0
 

Author Comment

by:saladart
ID: 17854197
Ok - I made progress...  I had to convert the field (HYPERLINK) into a template field and was able to assign an ID - but, I still have the same problem...  It seems like the parameter isn't either being picked up by the destination page (ATTENDEES) or the source page is not sending it...

How would I go about finding out where the breakdown is happening?

Sean
0
 
LVL 11

Accepted Solution

by:
ethoths earned 500 total points
ID: 17856537
Sorry abou the hyperlinkfield issue - I just cut and pasted your code and did not notice it was not a hyperlink.

To find out if the parameter is being set just view the source of the page with the hyperlink. Lokk for the hyperlink and see if it is formed as you expect.

To find out if the parameter is being sent, right click on the destination page and look at the properties, the full url should be show including the query string parameters. You can also put a break point on the page load event of the receiving page and inspect the variable me.page.request.querystring.tostring.

0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this Article, I will provide a few tips in problem and solution manner. Opening an ASPX page in Visual studio 2003 is very slow. To make it fast, please do follow below steps:   Open the Solution/Project. Right click the ASPX file to b…
IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question