Member 14041670 Ответов: 2

Как выполнить строку в виде кода на странице load C# ASP.NET-что?


Я хочу выполнить код на событии загрузки страницы из строки. Серверная Сторона C#

Пример

string code = "divmainmenu.Style["display"] = "block";"

    protected void Page_Load(object sender, EventArgs e)
                {
                    if(!IsPostBack)
                    { 
                       // Execute my string here like.

                          Execute(code);
                     }
                }


Что я уже пробовал:

я не могу найти о таком типе решений.

Richard MacCutchan

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

2 Ответов

Рейтинг:
1

Vincent Maverick Durano

Ваш код C# будет рассматривать ваш HTML как простую строку. Если вы хотите получить доступ к элементу из вашей формы в коде позади, то вы должны установить runat="server" атрибут для этого элемента и присвоить ему уникальный ID к нему, чтобы сервер мог получить к нему доступ. Например:

Aspx-файл:

<div id="divmainmenu" runat="server" />


Затем в вашем коде C# вы можете ссылаться на элемент по его идентификатору и задавать стиль Controls.Attributes.Add метод:
protected void Page_Load(object sender, EventArgs e)
{
	if(!IsPostback){
        	divmainmenu.Attributes.Add("style", "display:block;");// Where Style is the Attribute
	}
}


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


Рейтинг:
0

ZurdoDev

Это всего лишь код JavaScript. Используйте jQuery и поместите его в событие document.ready, $( document ).ready() | учебный центр jQuery[^]


Member 14041670

Да, вы правы, спасибо за ваш ценный ответ. java script вместо кода c#, но есть еще одна проблема, когда я вызываю код java scrip за c# на странице содержимого, он не работает. можете ли вы помочь с нижеприведенным кодом?
он работает без страницы контента, но мне это нужно с страницей контента. спасибо.



//Код C#

foreach (строка showmenu в listmainmenu)
{


//java-скрипт в строке

строку стр = " документ.метода getElementById('&л;%= страницу.Мастер.FindControl(\"forms\").FindControl(\"" + showmenu.Метод toString() + "\").Идентификатора ClientID %&ГТ;').стиль.дисплей = \"блок\";";

//вызов javascript
Страница.ClientScript.RegisterStartupScript(это.Метод gettype(), "универсальный"+showmenu, ул. ложных);

}

ZurdoDev

Я бы посоветовал не использовать C# для вызова JavaScript. На мой взгляд, это плохой подход. Вместо этого сделайте все это в JavaScript.

В противном случае не используйте Page.Мастер.FindControl, потому что это не всегда работает. Вместо этого просмотрите источник вашей страницы и найдите фактические идентификаторы, а затем жестко Закодируйте их.