0

ラベルが表示されていない場合、送信ボタンで検証メッセージまたはエラーが発生するという点で、可視性に基づいてラベルに検証を追加するのが好きです。

ツールボックスの検証コントロールに慣れているため、この機能は使用できません!

4

1 に答える 1

0

asp:Label の可視性が false に設定されている場合、asp.net エンジンはそれを DOM に入れさえしないようです。したがってonclick、(html) ボタンのプロパティを使用して javascript をチェックインし、ラベルが DOM にあるかどうかを確認し、asp.net の__doPostBack()javascript 関数を使用してサーバーにポストバックすることができます。

      <script type="text/javascript">
        function testMe()
        {
          var lbl = document.getElementById('lblTest');
          if(lbl == null)
            document.getElementById('msg').innerHTML = "Error";
          else
            __doPostBack('testButton');
        }
      </script>
      <asp:Label ID="lblTest" runat="server" Visible="false" Text="Hello"></asp:Label>
      <button onclick="testMe();">test</button>

正直なところ、ラベルが DOM に存在しない場合はlblになると思ってundefinedいましたが、Firebug は実際にはnull. とにかく、注意すべきいくつかのことは、asp.netがメソッドを定義するために__doPostBack()、フォームに何らかの制御が必要だと信じていることですautopostback="true"Page_Load:

if(Request.Form["__EVENTTARGET"] == "testButton") {}
于 2012-07-27T23:36:58.620 に答える