ASP.NETのマルチタブ、マルチレコードフォームのエラーメッセージバインド処理
またASP.NETで作られたシステムのトラブルだ・・・
7タブ程あって入力項目てんこ盛り画面で、登録ボタン押したらJavaScriptのalertが表示されてエラーと判定されてるようなのだが、メッセージが何も表示されてないので、なんのこっちゃという感じ
とりあえずVisualStudio無いんでテキストエディタでソースをみたとこ以下のようにしてエラーメッセージを割り当ててることが分かった。
<script runat="server"> hoge_check.ErrorMessage = "入力必須エラーです" </script> <asp:RequiredFieldValidator ID="hoge_check" runat="server" ControlToValidate="hoge" Display="None"></asp:RequiredFieldValidator>
こう書くと・・・
<script> ctl00_ContentPlaceHolder1_TabContainer1_TabPanel1_pn1_hoge_check.errormessage = "入力必須エラーです"; </script>
ブラウザ上ではこう展開されるらしい・・・
とりあえずチェックルーチンを順番にコメントアウトしながら確認してくと、マルチレコードフォームの画面でうまくいってないことが分かった。
<script runat="server"> Dim Values As New ArrayList For j = 1 To 15 Values.Add(j) Next fuga_tab.DataSource = Values fuga_tab.DataBind() For i = 0 To (fuga_tab.Items.Count - 1) hoge = fuga_tab.Items(i).FindControl("hoge_check") hoge.ErrorMessage = "数値範囲エラーです" Next </script> <ItemTemplate> <asp:RangeValidator ID="hoge_check" runat="server" ControlToValidate="hoge" Display="None" MaximumValue="100" MinimumValue="0" Type="Double"></asp:RangeValidator> </ItemTemplate>
こんな感じの処理だけど・・・
ブラウザ上ではなにも展開されてない・・・もう面倒だからjsで直接書いちゃおうかな