Solved

Name does no exist in the current context

Posted on 2010-11-30
2
780 Views
Last Modified: 2012-06-27
I am trying to populate a DataSet in one Event Handler, then check the data in that dataset in another Event Handler and am getting the error:

The name 'myData' does not exist in the current context.

How do I make myData available to the other Event Handler? I thought Data Tables were accessible thorughout the code-behind?

<asp:Repeater ID="degreeDetail" runat="server" DataSourceID="dsDegree" OnItemDataBound="Repeater1_ItemDataBound"> 
<ItemTemplate>
    <asp:HiddenField ID="hdnID" runat="server" Value='<%# Eval("ID") %>' />
    <h1><asp:Label ID="lblDegreeName" runat="server" Text='<%# Eval("degreeName") %>'></asp:Label></h1>
    <p><asp:Literal ID="litDescription" runat="server" Text='<%# Eval("description") %>'></asp:Literal></p>
    <h2><asp:Label ID="lblAdmissionHdr" runat="server" Text="Admission"></asp:Label></h2>
    <p><asp:Literal ID="litAdmission" runat="server" Text='<%# Eval("admission") %>'></asp:Literal></p>
    <h2><asp:Label ID="lblStandardsHdr" runat="server" Text="Standards"></asp:Label></h2>
    <p><asp:Literal ID="litStandards" runat="server" Text='<%# Eval("standards") %>'></asp:Literal></p>
    <h2><asp:Label ID="lblAdvisingHdr" runat="server" Text="Advising"></asp:Label></h2>
    <p><asp:Literal ID="litAdvising" runat="server" Text='<%# Eval("advising") %>'></asp:Literal></p>
    <h2><asp:Label ID="lblPrerequisitesHdr" runat="server" Text="Prerequisites"></asp:Label></h2>
    <p><asp:Literal ID="litPrerequisites" runat="server" Text='<%# Eval("prerequisites") %>'></asp:Literal></p>
    <h2><asp:Label ID="lblRequirementsHdr" runat="server" Text="Requirements"></asp:Label></h2>
    <p><asp:Literal ID="litRequirements" runat="server" Text='<%# Eval("requirements") %>'></asp:Literal></p> 
     <asp:Repeater ID="courseDetail" runat="server" OnItemDatabound="Repeater2_ItemDataBound">
        <HeaderTemplate>
            <table width="95%" cellpadding="3" cellspacing="0" border="0" align="center">
        </HeaderTemplate>
        <ItemTemplate>
            <asp:Literal ID="litCategory" runat="server" Text=""></asp:Literal>
            <asp:Literal ID="litSubcategory" runat="server" Text=""></asp:Literal>
            <tr>
            <td width="5%">&nbsp;</td>
            <td align="left" valign="top" width="15%">
            <asp:Hyperlink ID="hlCourse" runat="server"></asp:Hyperlink>
            </td>
            <td align="left" valign="top" width="70%">
                <asp:Label ID="lblCourseName" runat="server" Text="" Visible="false"></asp:Label>
                <asp:HyperLink ID="hlCourseName" runat="server"></asp:HyperLink></td>
            <td align="left" valign="top" width="10%" nowrap="nowrap">.....<asp:Label ID="lblCredits" runat="server" Text=""></asp:Label></td>
           
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
        </asp:Repeater> 
    <p></p>
    <p><asp:Literal ID="litOther" runat="server" Text='<%# Eval("otherInfo") %>'></asp:Literal></p>
    <h2><asp:Label ID="lblCertificationHdr" runat="server" Text="Certification" Visible="false"></asp:Label></h2>
    <p><asp:Literal ID="litCertification" runat="server" Text='<%# Eval("certification") %>'></asp:Literal></p>
    </ItemTemplate>
    </asp:Repeater>

Open in new window

protected void Repeater1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item)
            {
                string adm = DataBinder.Eval(e.Item.DataItem, "admission").ToString();
                if ((adm == "") || (adm == null))
                {
                    ((Label)e.Item.FindControl("lblAdmissionHdr")).Visible = false;
                }
                string st = DataBinder.Eval(e.Item.DataItem, "standards").ToString();
                if ((st == "") || (st == null))
                {
                    ((Label)e.Item.FindControl("lblStandardsHdr")).Visible = false;
                }
                string advising = DataBinder.Eval(e.Item.DataItem, "advising").ToString();
                if ((advising == "") || (advising == null))
                {
                    ((Label)e.Item.FindControl("lblAdvisingHdr")).Visible = false;
                }
                string prereq = DataBinder.Eval(e.Item.DataItem, "prerequisites").ToString();
                if ((prereq == "") || (prereq == null))
                {
                    ((Label)e.Item.FindControl("lblPrerequisitesHdr")).Visible = false;
                }
                string req = DataBinder.Eval(e.Item.DataItem, "requirements").ToString();
                if ((req == "") || (req == null))
                {
                    ((Label)e.Item.FindControl("lblRequirementsHdr")).Visible = false;
                }
                string cert = DataBinder.Eval(e.Item.DataItem, "certification").ToString();
                if ((cert == "") || (cert == null))
                {
                    ((Label)e.Item.FindControl("lblCertificationHdr")).Visible = false;
                }
                
                string degreeID = DataBinder.Eval(e.Item.DataItem, "ID").ToString();

                string connStr = ConfigurationManager.ConnectionStrings["ruUtility"].ToString();
                SqlConnection conn = new SqlConnection(connStr);
                SqlCommand cmd = new SqlCommand("sp_courseRecords", conn);
                cmd.Parameters.AddWithValue("@ID", degreeID);
                SqlDataAdapter myAdapter = new SqlDataAdapter(cmd);
                DataSet myData = new DataSet();
                myAdapter.Fill(myData, "courses");

                Repeater cd = ((Repeater)e.Item.FindControl("courseDetail"));
                cd.DataSource = myData;
                cd.DataBind();

            }
        }

protected void Repeater2_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
        {
            /* Course data returned:
             * subjectID, courseNumber, courseName, credits, category, subcategory */
            if (e.Item.ItemType == ListItemType.Item)
            {
                foreach (DataRow row in myData.Tables["courses"].Rows())
                {
                    string category = (string)row["category"];
                    string subcat = (string)row["subcategory"];
                    //set up counter
                    //if counter = 0 then move category/subcategory into session
                    //check for equality between session & reader for cat & subcat
                    //if unequal, move new value into session

                    // CATEGORY HEADING
                    if ((category == "") || (category == "0"))
                    {
                        ((Literal)e.Item.FindControl("litCategory")).Visible = false;
                    }
                    else
                    {
                        ((Literal)e.Item.FindControl("litCategory")).Visible = true;
                        ((Literal)e.Item.FindControl("litCategory")).Text = "<tr><td colspan='4' align='left'><h2>" +
                            category + "</h2></td></tr>";
                    }
                    // SUBCATEGORY HEADING
                    if ((subcat == "") || (subcat == "0"))
                    {
                        ((Literal)e.Item.FindControl("litSubcategory")).Visible = false;
                    }
                    else
                    {
                        ((Literal)e.Item.FindControl("litSubcategory")).Visible = true;
                        ((Literal)e.Item.FindControl("litSubcategory")).Text = "<tr><td width='5%'>&nbsp;</td><td colspan='3' align='left'><h3><i>" +
                           subcat + "</i></h3></td></tr>";
                    }
                    // COURSE ROWS
                    string subj = (string)row["subjectID"];
                    string course = (string)row["courseNumber"];
                    string cname = (string)row["courseName"];
                    string credits = (string)row["credits"];

                    if ((subj == "") || (subj == "0") || (course == "") || (course == "0"))
                    {
                        ((HyperLink)e.Item.FindControl("hlCourse")).Visible = false;
                        ((HyperLink)e.Item.FindControl("hlCourseName")).Visible = false;
                        // No link, just course name
                        ((Label)e.Item.FindControl("lblCourseName")).Text = cname;
                        ((Label)e.Item.FindControl("lblCourseName")).Visible = true;
                    }
                    else
                    {
                        // Show linked subject & course
                        ((HyperLink)e.Item.FindControl("hlCourse")).Text = subj + " " + course;
                        ((HyperLink)e.Item.FindControl("hlCourse")).NavigateUrl =
                            Session["path"] + "Course.aspx?subj=" + subj + "&num=" + course;
                        ((HyperLink)e.Item.FindControl("hlCourse")).Visible = true;
                        // Hide unlinked course name
                        ((Label)e.Item.FindControl("lblCourseName")).Visible = false;
                    }
                    if ((cname == "") || (cname == "0"))
                    {
                        ((HyperLink)e.Item.FindControl("hlCourseName")).Visible = false;
                    }
                    else
                    {
                        // Show linked course name
                        ((HyperLink)e.Item.FindControl("hlCourseName")).Text = cname;
                        ((HyperLink)e.Item.FindControl("hlCourseName")).Visible = true;
                        ((HyperLink)e.Item.FindControl("hlCourseName")).NavigateUrl =
                            Session["path"] + "Course.aspx?subj=" + subj + "&num=" + course;
                    }

                    if ((credits == "") || (credits == "0"))
                    {
                        ((Label)e.Item.FindControl("lblCredits")).Visible = false;
                    }
                    else
                    {
                        ((Label)e.Item.FindControl("lblCredits")).Visible = true;
                        ((Label)e.Item.FindControl("lblCredits")).Text = credits;
                    }

                }
            }
        }

Open in new window

0
Comment
Question by:vcbertini
[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
2 Comments
 
LVL 52

Accepted Solution

by:
Carl Tawn earned 500 total points
ID: 34242410
They are, but you have myData declared within the ItemDataBound method, which makes it local to that method. Simply move the variable declaration to the class-level.

i.e. Put:

    DataSet myData;

Outside of any method in your page. Then in the Repeater1_ItemDataBound method change:

    DataSet myData = new DataSet();

To:

    myData = new DataSet();
     
0
 

Author Closing Comment

by:vcbertini
ID: 34242466
I didn't know you could do that! Thanks!
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

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

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…
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, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…

691 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