Вызов функции JS из ASP.Net MasterPage - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть требование прочитать данные изображения с SQL Server (логотип компании) и сохранить их в localStorage. Этот логотип компании отображается на левой боковой панели главной страницы, чтобы на каждой клиентской странице он был виден.

Для этой цели я использую 3 функции JS на главной странице.

function storageCheck() {
  if (localStorage.getItem("imgData") === null) //check availability 
    document.getElementById('<%=hdfStorage.ClientID %>').value = "true"; //assign true to a hidden field
  else
    document.getElementById('<%=hdfStorage.ClientID %>').value = "false";
}

function storelogo(imgData) { //store image data
  localStorage.setItem("imgData", imgData);
}

function getImg() { //get data
  var dataImage = localStorage.getItem('imgData');
  document.getElementById('imgCompanyLogo').src = dataImage;
  alert('got')
}

В коде главной страницы я вызываю эти функции JS

protected void Page_LoadComplete(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    ScriptManager.RegisterStartupScript(this, this.GetType(), "checkfn", "storageCheck()", true);

    if (hdfStorage.Value == "true")
      ScriptManager.RegisterStartupScript(this, this.GetType(), "storelogoo", "storelogo('" + <Base64String img data from database> + "');", true);
    else if (hdfStorage.Value == "false")
      ScriptManager.RegisterStartupScript(this, this.GetType(), "getlogo", "getImg();", true);
  }
}

Я пытался поместить его в событие Page_Load, но безрезультатно. Проблема, с которой я сталкиваюсь, заключается в том, что эти функции не вызываются, и если их вызывать из события загрузки страницы, скрытое поле управления не получит значение при проверке с использованием hdfStorage.Value == "true"

1 Ответ

1 голос
/ 05 ноября 2019

Я предлагаю поместить его в память как синглтон или сеанс, все люди работают так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...