Я пытаюсь переключить отображение / скрытие элемента 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 на статическое поле, но затем код внутри этой функции выдает ошибку (ссылка на объект требуется для нестатическогополе)