Solved

Name does no exist in the current context

Posted on 2010-11-30
2
757 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
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

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

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

Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

774 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