mobile:TextBox に istyle 属性を追加する

From よさだやぐぶろぐ
http://osada.bz/PermaLink.aspx?guid=3daf911f-347a-4efa-9728-8e8ebc5598d2


DeviceSpecific でも CustomAttributes でも、同じようにセットした accesskey はいけるのに、istyle 属性は勝手に消される。AccessKey とかってやってみても、accesskey ってなるんだよね。どうも裏でチェックしてるっぽい。

MobileCapabilities で SupportsInputIStyle って取れるんだけど、使えなきゃ意味ねぇよな全く。結局独自でコントロールを作るしかないらしい。

ChtmlTextBoxAdapterが、TextBoxのnumericプロパティがTrueの時に、istyle=4を出力しているだけで、
CustomAttributesでistyleを設定しても無視されている模様

なので、istyleをサポートしたAdapterを作ってみた


public class IStyleSupportTextBoxAdapter : ChtmlTextBoxAdapter
{
protected override void AddAttributes(HtmlMobileTextWriter writer)
{
base.AddAttributes(writer);
TextBox tbox = (TextBox) base.Control;
string istyle = (string)tbox.CustomAttributes["istyle"];
if(istyle !=null)
{
writer.WriteAttribute("istyle", istyle);
}
}
}