マスクやコンボで書式を設定した場合、ポストバック後にTextプロパティの値が変更される場合がある
対象製品
InputMan for .NET 2.0J Web Forms Edition
発生環境
動作環境と同じ
状況
修正済み
詳細
書式設定が、電話番号のように、リテラル文字が存在しまた文字数を指定するとき、最大文字数の入力がされない状態でポストバックされると、Textプロパティの値が前詰めで表示されます。
例)03-1234-5678 と入力すると、ポストバック後に 0312-3456-78__となる。
例)03-1234-5678 と入力すると、ポストバック後に 0312-3456-78__となる。
回避方法
この問題は改定第3版(v2.0.2008.314)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページからダウンロードできます。
改定第3版より前のバージョンでは次の方法で回避可能です。
HiddenFieldコントロールを使用し、クライアント側で変更される前のTextプロパティを取得しておくことで、回避できます。
以下は、ボタンクリックでポストバックする場合の回避方法です。
1. フォームにHiddenFieldコントロールを配置します。
2. ページのLoadイベントで次のように実装します。
【VB.NET】
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Button1.OnClientClick = "document.getElementById('HiddenField1').value = FindIMControl('Mask1').GetText()"
Mask1.Text = HiddenField1.Value
End Sub
【C#】
private void Page_Load(object sender, System.EventArgs e)
{
Button1.OnClientClick = "document.getElementById('HiddenField1').value = FindIMControl('Mask1').GetText()";
Mask1.Text = HiddenField1.Value;
}
不具合を修正した最新のサービスパックは、アップデートページからダウンロードできます。
改定第3版より前のバージョンでは次の方法で回避可能です。
HiddenFieldコントロールを使用し、クライアント側で変更される前のTextプロパティを取得しておくことで、回避できます。
以下は、ボタンクリックでポストバックする場合の回避方法です。
1. フォームにHiddenFieldコントロールを配置します。
2. ページのLoadイベントで次のように実装します。
【VB.NET】
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Button1.OnClientClick = "document.getElementById('HiddenField1').value = FindIMControl('Mask1').GetText()"
Mask1.Text = HiddenField1.Value
End Sub
【C#】
private void Page_Load(object sender, System.EventArgs e)
{
Button1.OnClientClick = "document.getElementById('HiddenField1').value = FindIMControl('Mask1').GetText()";
Mask1.Text = HiddenField1.Value;
}
キーワード
INME06597
この文書は、以前は次のバグレポートIDで公開されていました : 7232