Как я могу скрыть / показать элемент html из функции C #? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь переключить отображение / скрытие элемента html из функции C #.

Вещи, которые я пробовал, основываясь на ранее отвеченных вопросах:

  • вызовидентификатор элемента html с помощью кода

  • Вызов функции J-запроса из кода с использованием Page.ClientScript.RegisterStartupScript.

  • То же, что и выше, но с использованием: ScriptManager.RegisterStartupScript(this.GetType(), this.GetType(), "script", "HideMonthSelector();", true);

C # функция :

namespace WDMDashboard.Geotext
{
    public class GeoTextDistinctManager
    {
       private void GetDistinctSummaryData(int dashboardObjectUid, int dashboardDistinctSummaryUid, string month, string year, bool toggle)
       {
        Default CodeBehind = new Default();
        CodeBehind.HideMonthSelector();
       }
    }
}

Код позади

namespace WDMDashboard
{
    public partial class Default : System.Web.UI.Page
    {


        public string VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Header.DataBind();

            HtmlHead head = Page.Header;

            foreach (Control child in head.Controls)
            {
                if (child is HtmlLink)
                {
                    ((HtmlLink)child).Href += "?" + VersionNumber;
                }
            }
        }
        public void HideMonthSelector()
        {
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "HideMonthSelector();", true);
        }
    }  
}

Default.aspx :

<li runat="server" id="selectMonth" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-calendar" aria-hidden="true"></i> Select Month
</a>
<ul class="dropdown-menu" id ="navDropCalendar"></ul>                        
</li>  

<script>function HideMonthSelector() { $("#selectMonth").hide();}</script>  
<script>function ShowMonthSelector() { $("#selectMonth").show();}</script>   

РЕДАКТИРОВАТЬ: на основе комментариев, кажется, что проблемачто я создаю экземпляр страницы default.aspx.cs и затем вызываю метод в этом экземпляре. По-видимому, это означает, что элемент html id не инициализирован и остается нулевым. Какие еще есть альтернативы?

Я могу запустить Default.HideMonthSelector (), если я изменю функцию HideMonthSelector на статическое поле, но затем код внутри этой функции выдает ошибку (ссылка на объект требуется для нестатическогополе)

1 Ответ

0 голосов
/ 04 октября 2019

Проблема заключается в вашем коде JavaScript

<script>function HideMonthSelector() { $("#monthSelector").hide();}</script>  
<script>function ShowMonthSelector() { $("#monthSelector").show();}</script>

Я не могу найти любой элемент HTML с идентификатором monthSelector . Вот почему ваш код не работает.

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