"System.NullReferenceException-- Ссылка на объект не установлена ​​на экземпляр объекта." Webmethod, Пользовательский контроль - PullRequest
0 голосов
/ 17 ноября 2011

У меня есть ModalPopupExtender (mpe), который будет отображаться при нажатии кнопки asp :. Кнопка вызывает функцию JavaScript, которая затем вызывает веб-метод. Веб-метод находится в коде позади страницы.

Веб-метод передает строковую переменную другому методу в коде. который определяет, что делает mpe. Идея этой логики заключается в том, что когда вы нажимаете кнопку, я хочу включить определенные части mpe и отключить другие части. Это потому, что у mpe есть несколько функций.

Кнопка Aspx и UserControl

 <uc2:IMG ID="IMG1" runat="server" />
 <asp:Button ID="btnAddNewImg" runat="server" Text="Add New Image" onclientclick="ShowImgPopupScreen()"  />

Функция Javascript

  <script type="text/javascript">
     function ShowImgPopupScreen() {
         // call server side method
         PageMethods.AddNewImg();
     }   
</script>

ASPX.CS код

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static void AddNewImg()
    {
        string option = "add";
        image_loader_cms cms = new image_loader_cms();
        cms.SetButtons(option);

    }

    protected void SetButtons(string add)
    {
        if (add == "add")
        {
            IMG1.Add = true;


        }
        else
        {
            IMG1.Edit = true;

        }
    }

ASCX.CS

public bool Add
    {
        get
        {
            return btnAdd.Enabled;
        }
        set
        {
            btnAdd.Enabled = value;
        }
    }


    public bool Edit
    {
        get
        {
            return btnUpdate.Enabled;
        }
        set
        {
            btnUpdate.Enabled = value;
        }
    }

Код переходит в IMG1.Add = true; при использовании точек останова, но после этой строки кода я получаю это сообщение об ошибке.

Ошибка выполнения Microsoft JScript: Sys.Net.WebServiceFailedException: The server method 'AddNewImg' завершилась следующей ошибкой:

 System.NullReferenceException-- Object reference not set to an instance of an object.

Эта проблема заставляет меня чесать голову.

1 Ответ

1 голос
/ 17 ноября 2011

Вы создаете новый пользовательский элемент управления, однако он не будет создавать свои дочерние элементы управления или использоваться в любом случае, пока не будет добавлен в дерево элементов управления, следовательно, ваше изображение и кнопки никогда не создаются.

Поскольку вы находитесь вметод статической страницы, я не думаю, что это сработает.

Что вы на самом деле пытаетесь сделать с помощью пользовательского элемента управления со страницы moethod?

...