У меня проблема в asp.net 4.
Когда я добавляю атрибут к элементам управления, тогда рендеринг его кодируется.
Например, когда явведите этот код
txtQuestion.Attributes["onfocus"] =
"if(this.value == this.title)
{
this.value = '';
this.style.backgroundColor='#FEFDE0';
this.style.color='#000000';
}";
Я получаю визуализацию
onfocus="if(this.value == this.title){this.value =
'';this.style.backgroundColor='#FEFDE0';
this.style.color='#000000';}"
И каждый ' хэш изменяется на & # 39;
Есть ли способ отключить это новое будущее только на некоторых элементах управления ?или простой способ сделать пользовательский рендер?
My Fail пытается
Я готов, некоторые думают, но у меня ничего не получается.Например, это терпит неудачу.
txtQuestion.RenderingCompatibility = new Version("3.5");
Я также нахожу точку, в которой отображаются эти атрибуты и находится на
public virtual void RenderBeginTag (HtmlTextWriterTag tagKey) function,
там у каждого атрибута есть флаг, если он хочет быть закодированным, но я не знаю, как кто-то может установить его или нет.
One Work Around
В форуме asp net в том же вопросе есть решение, которое изменяет глобальный EncodeType - это не то решение, которое я ищу - и человек, который дает решение, говорит, что это не отличный обходной путь ,с потенциальными проблемами безопасности или другими проблемами рендеринга.
Спасибо всем в продвинутом.
Кервин
До сих пор Кервин обнаружил, что Microsoft предлагает вместо этого использовать эту команду.
txtQuestion.Attributes["onfocus"] =
"if(this.value == this.title){this.value = '';this.style.backgroundColor='#FEFDE0';this.style.color='#000000';}";
Используйте это.
Page.ClientScript.RegisterExpandoAttribute(txtQuestion.ClientID, "onfocus",
"if(this.value == this.title){this.value = '';this.style.backgroundColor='#FEFDE0';this.style.color='#000000';}");
И что MS рендерит, это в конце страницы, скрипт, который добавляет фокус на этот элемент управления с помощью JavaScript .Мы можем сделать это даже сами с помощью jQuery и, возможно, быть более совместимыми.
Это решение, , но все же я хотел бы знать, есть ли способ просто избежать кодировки атрибутов и позволитья делаю то, что я хочу, мой путь - не путь MS.