Solved

Passing parameter from one page to another

Posted on 2006-11-01
6
1,296 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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
asp.net bundle 8 47
Anyway to make "All" the default in the dropdown? 6 34
SQL Login 17 41
Delete HTML table rows 12 12
I have developed many web applications with asp & asp.net and to add and use a dropdownlist was always a very simple task, but with the new asp.net, setting the value is a bit tricky and its not similar to the old traditional method. So in this a…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

863 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

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now