0

我有一个像下面这样的按钮

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="clicked('R&#233;cup&#233;ration de frigorig&#232;ne')" />

和下面的 JavaScript 函数

function clicked(s) {           
    confirm( s);
}

上面的代码工作正常。但是当我将属性从后端添加到按钮时,

Button1.Attributes.Add("OnClick", "clicked('R&#233;cup&#233;ration de frigorig&#232;ne')");

它按原样显示字符串(Unicode 未在确认框中转换)。这是什么原因啊!!。我没有得到解决方案。

4

2 回答 2

1

只需自己为属性进行 HTML 解码,因为它看起来像 ASP.NET 自动将其转换为前端代码,但在从后端代码添加它时不会:

   Button1.Attributes.Add("OnClick", "clicked('" +
     HttpUtility.HtmlDecode("R&#233;cup&#233;ration de frigorig&#232;ne" + "')");
于 2013-10-01T07:31:27.477 回答
0

在服务器端使用实际的 unicode 字符并将其添加为 Button1 的属性,ASP.NET 会自动将它们转换为正确的 HTML 实体。

Button1.Attributes.Add("ClickMessage", "actual unicode chars not the encoded");
Button1.Attribute.Add("OnClick", "clicked(this.getAttribute('ClickMessage');");

这样,即使值包含可能会破坏脚本的单引号/双引号,您的 javascript 仍然可以工作。

于 2013-10-01T07:37:42.087 回答