Solved

Passing parameter from one page to another

Posted on 2006-11-01
6
1,300 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

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

In an ASP.NET application, I faced some technical problems. In this article, I list them out and show the solutions that I found.  I hope it will be useful. Problem: After closing a pop-up window, the parent page should be refreshed automaticall…
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…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

717 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