【質問】ASP.NETスレ Part3【議論】
■ このスレッドは過去ログ倉庫に格納されています
0584344
2007/04/19(木) 16:23:20ID:???DropDownListはRenderContentsメソッド内でデータをhtmlencodeして出力しているらしい。
だからRenderContentsを↓のようにOverrideしてhtmlencodeをはずしてあげればいいはず。
public class NonHtmlEncodedDropDownList : System.Web.UI.WebControls.DropDownListを定義して
protected override void RenderContents(HtmlTextWriter output)
{
int count = Items.Count;ListItem item;bool selected = false;
for (int i = 0; i < count; i++)
{
item = Items[i];
output.WriteBeginTag("option");
if (item.Selected)
{
output.WriteAttribute("selected", "selected", false);
selected = true;
}
output.WriteAttribute("value", item.Value, true);
output.Write(">");
string text = item.Text; ←ここで本当はhtmlencodeされているハズ
output.Write(text);
output.WriteEndTag("option");
output.WriteLine();
}
output.Write(Text);
}
this.NonHtmlEncodedDropDownList1_1.Items.Add(new ListItem("♥", "1"))
これでハートが表示されてる。バグってたらスマソ。
■ このスレッドは過去ログ倉庫に格納されています