?
Solved

Passing parameter from one page to another

Posted on 2006-11-01
6
Medium Priority
?
1,329 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
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 

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

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
When you have multiple client accounts to manage, it often feels like there aren’t enough hours in the day. With too many applications to juggle, you can’t focus on your clients, much less your growing to-do list. But that doesn’t have to be the cas…
Watch the software video of Kernel Import PST to Office 365 tools which can easily import PST and OST files to Office 365 for bulk mailboxes. The process of migration is simple and user can map source and destination mailboxes and easily import data…

568 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