使用C#和uilang javascript的PageMethod问题使占位符可见

时间:2015-03-12 18:36:10

标签: javascript c# asp.net ajax pagemethods

我有一个div框,当点击三个按钮之一时,它会滑入视图:undergrad,masters和certificate。这个动画是用uilang代码完成的(对于那些不知道uilang你可以去uilang.com的人来说)。单击按钮时我们想要一个动态显示到div的列表。该名单将是本科学位,硕士或证书。

所以uilang幻灯片动画工作正常。我创建了一个单独的按钮来测试asp占位符是否正常工作。列表显示正常,所以我知道sql或类似的东西没有任何问题。

这是代码

//索引页面顶部

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="index.aspx.cs" Inherits="online_programs" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

//索引页面上的表单和代码

<form id="myform" runat="server">
        <asp:ScriptManager ID="ScriptManager2" runat="server" EnablePageMethods="true">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
        <ContentTemplate>

        <script>

            function ugradList() {
                PageMethods.underGradList();
            }

            function mList() {
                PageMethods.masterList();
            }

            function cList() {
                PageMethods.certificateList();
            }

        </script>

        <label id="underGradButton" onclick="ugradList()" class="toggle-btn"><input type="radio" name="group3" /><i class="fa fa-circle darkgreen">&nbsp;</i>&nbsp;Undergraduate</label>




        <label id="masterButton" onclick="mList()" class="toggle-btn"><input type="radio" name="group3"/><i class="fa fa-circle darkgreen">&nbsp;</i>&nbsp;Graduate </label>



        <label id="certificateButton" onclick="cList()" class="toggle-btn"><input type="radio" name="group3"/><i class="fa fa-circle darkgreen">&nbsp;</i>&nbsp;Certificate </label>


         <asp:Label ID="PrevParentIDLabel" runat="server" Text="0" />

                    <div id="degree-list">




                    <ul><asp:PlaceHolder ID="BachelorsPlaceHolder" runat="server" Visible="false" /></ul>

                    <ul><asp:PlaceHolder ID="MastersPlaceHolder" runat="server" Visible="false" /></ul>


                    <ul><asp:PlaceHolder ID="CertificatePlaceHolder" runat="server" Visible="false" /></ul>



                    </div>


        </ContentTemplate>
         </asp:UpdatePanel>
    </form>

// uilang code

<code>


   clicking on ".toggle-btn" adds class "show-degree-results" on "#degree-results"

   clicking on ".close-results" removes class "show-degree-results" on "#degree-results"



</code>

我遇到的问题是,当点击按钮时,它不显示列表!我检查时得到以下日志:

  

服务器方法'underGradList'失败,出现以下错误:System.NullReferenceException--对象引用未设置为对象的实例。

     

服务器方法'masterList'失败,并出现以下错误:System.NullReferenceException--未将对象引用设置为对象的实例。

     

服务器方法'certificateList'失败,并出现以下错误:System.NullReferenceException--未将对象引用设置为对象的实例。

就像我之前说过的,我创建了一个测试按钮并拉出一个占位符来测试并确保我的其他代码正常工作。它工作正常。所以我知道我不需要帮助,但是我做错了什么或者我错过了什么,我不确定它是什么。下面是C#:

public partial class online_programs : System.Web.UI.Page
{

     protected void Page_Load(object sender, EventArgs e)
     {  
        // Our sql and other code that is working fine
     }

     // bachelor function
     [System.Web.Services.WebMethod]
     public static void underGradList()
     {                          

       online_programs currentclass = new online_programs();





       currentclass.MastersPlaceHolder.Visible = false;



       currentclass.CertificatePlaceHolder.Visible = false;



       currentclass.BachelorsPlaceHolder.Visible = true;









     }




    // Master function
    [System.Web.Services.WebMethod]
    public static void masterList()
    {                           

        online_programs currentclass = new online_programs();

        currentclass.BachelorsPlaceHolder.Visible = false;
        currentclass.CertificatePlaceHolder.Visible = false;
        currentclass.MastersPlaceHolder.Visible = true;




     }




     // Certificate function
     [System.Web.Services.WebMethod]
     public static void certificateList()
     {


        online_programs currentclass = new online_programs();

        currentclass.BachelorsPlaceHolder.Visible = false;
        currentclass.MastersPlaceHolder.Visible = false;
        currentclass.CertificatePlaceHolder.Visible = true;



     }

}

我对C#很新,所以如果缺少某些内容或者如果您需要更多信息,请询问。就像我说的其他代码工作正常。我提供的是问题所在。请帮忙!

0 个答案:

没有答案