У меня есть 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.
Эта проблема заставляет меня чесать голову.