Solved

Passing parameter from one page to another

Posted on 2006-11-01
6
1,293 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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 

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

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Suggested Solutions

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

705 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

20 Experts available now in Live!

Get 1:1 Help Now