сторона сервера jQuery управление DOM

Кто-либо знает, возможно ли усилить питание JQuery на серверной стороне .NET?

Например, у меня есть некоторый HTML как Строка в некотором коде позади. Существует ли способ выполнить JQuery на нем?

Я в настоящее время делаю это...

Предположите, что это - Строка...

<input id='AddressSettings_txtFirstName' name='txtFirstName' 
value='#firstNameValue#' size='25' type='text'  class='val_required'/> 

Мой C# делает это

 strHTML = strHTML.Replace("#firstNameValue#", customerInfo.FirstName);

И это - то, как я связываю свои данные с моим HTML.

Теперь то, что я хотел бы сделать, вместо того, чтобы иметь необходимость добавить #firstNameValue# как заполнителя, и заменить его я хотел бы так или иначе выполнить строку JQuery на строке HTML в моем коде C#.

strHTML = strHTML.ExecuteJQuery("$('#AddressSettings_txtFirstName').text('" 
         + customerInfo.FirstName + "')");

Каковы мои опции здесь?

8
задан ctrlShiftBryan 2 March 2010 в 18:40
поделиться

3 ответа

Для всех намерений и целей ответ - «нет» (хотя может быть какой-то неясный способ справиться с этим, не самый оптимальный способ).

Похоже, вы ищете способ манипулировать HTML, который создается на серверной , что является вполне законным желанием, просто подход на стороне сервера с использованием .NET (или другие) технологии радикально отличаются от того, как вы подходили бы к ним на стороне клиента.

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

По этой причине вы хотите использовать то, что доступно на сервере, для выполнения того, что вы делаете.

Независимо от того, используете ли вы модель WebForms или модель MVC для ASP.NET, существуют механизмы, которые позволяют выполнять привязку к данным без необходимости записывать тег самостоятельно.

Например, в модели WebForm у вас есть класс TextBox , для которого можно установить свойство Текст .

В ASP.NET MVC есть метод расширения TextBox в классе InputExtensions , который позволяет передавать содержимое текстового поля, и метод будет отображать тег за вас.

4
ответ дан 5 December 2019 в 23:14
поделиться

DOM - это объект, специфичный для браузера. Таким образом, не доступны напрямую, как вы ищете. Однако вы можете определить, чем именно вы хотите манипулировать, и использовать либо .live () , либо вызов вашего кода jQuery для добавления поведенческих вещей по мере добавления элементов. Что касается изменения:

<input id='AddressSettings_txtFirstName' name='txtFirstName'  
value='#firstNameValue#' size='25' type='text'  class='val_required'/>  

$('#AddressSettings_txtFirstName').change(function(){
// do stuff here
});

будет срабатывать, например, при изменении. РЕДАКТИРОВАТЬ: Еще один вариант - заставить клиента извлекать данные с помощью ajax и JSON, но это небольшой сдвиг в вашем методе работы с настоящее время.

0
ответ дан 5 December 2019 в 23:14
поделиться

Вот ответ для Java. Здесь и Здесь. Предоставлено парнем по имени Джон Ресиг. (Не уверен, что он знает, о чем говорит, когда речь идет о JQuery... wink wink)

А что насчет .Net?

0
ответ дан 5 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: