Member 14159645 Ответов: 1

Как получить доступ к атрибуту <div> из кода C#?


Всем привет,

Я пытаюсь получить доступ (и отредактировать) атрибут конкретного
на моей странице asp из кода C# позади. Хотя я могу получить его по идентификатору в главном разделе Page_Load, я не могу получить доступ к нему из функции на странице, где я хочу выполнить эту работу.

Мой div:

<div id="searchParams" modifiedstring="This is a Test" runat="server"></div>


В коде C#-behind я пытаюсь получить доступ к нему из этой функции:

public static void getItemsBySubject(string search)
{
    List<HeritageItems> ItemList = DataAccess.FindItemsBySubject(search);
    string modifiedstring = Jsonify(ItemList);
    *I Want to access searchParams here but cannot*
}


Я получаю ошибку "ССЫЛКА на объект требуется для нестатического поля, метода или свойства" .

Тем не менее я могу получить доступ к нему просто отлично здесь на той же странице кода позади:

protected void Page_Load(object sender, EventArgs e)
{
    searchParams.etcetera
}


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

Я, очевидно, новичок в этом деле, так что я могу упустить что-то очень очевидное. Все страницы справки, которые я видел в интернете для подобных вопросов, показывают пример в функции Page_Load. Что заставляет меня думать, что это как-то связано с этим....

Но я подозреваю (надеюсь), что есть способ получить доступ к этому из другой автономной функции, которую я вызову с другой страницы. При работе в консольных приложениях это может потребовать создания экземпляра объекта, но мои попытки попробовать несколько различных методов не сработали, потому что
id просто не доступен даже для использования в заявлении.

Любые предложения будут оценены по достоинству.

1 Ответов

Рейтинг:
2

F-ES Sitecore

Это потому, что ваша функция статична. Либо сделайте функцию нестатичной, либо передайте объект в качестве параметра функции и используйте его оттуда.

Статические функции существуют на уровне типа, однако ваша страница является экземпляром вашего типа. Если у вас есть пять экземпляров вашей страницы, то каждая страница имеет свой собственный экземпляр searchParams, однако все они имеют одну и ту же функцию getItemsBySubject, поэтому, если вы использовали "searchParams" внутри этой функции, какой экземпляр этого объекта он будет использовать, поскольку их пять.


Member 14159645

Спасибо, это очень полезно. Изменение функции на нестатическую решило эту проблему, но открыло новую банку червей!

Вы предполагаете, что я мог бы передать идентификатор div в качестве параметра функции, а затем отредактировать атрибуты таким образом?

F-ES Sitecore

Пока вы вызываете getItemsBySubject из нестатической функции, вы можете передать его, да, просто добавьте его в качестве второго параметра

общественная статический недействительным getItemsBySubject(строку поиска, контроля CorrectTypeHere )
{
контроль.
}

Я не знаю, что это за тип будет с моей головы, вам нужно будет решить это.

Кстати, кое-что я добавлю здесь, что если этот код выполняется в результате webmethod или ajax-вызова, то вы не можете получить доступ к серверным элементам управления таким образом; он работает только для кода, работающего в качестве обратной передачи, то есть в результате отправки формы.

Member 14159645

Еще раз спасибо за ваши отзывы. Я все еще работаю над этим, но надеюсь, что иду в правильном направлении.