0

asp パネルは、java-script 関数を使用して asp チェック ボックスを介して表示する必要があります。

私の会社は、特定のページのコーディングを変更することを望んでいます。要件は、チェック ボックスをクリックすると、パネルが表示される必要がありますが、ポストバックされるべきではありません。そのため、JavaScript を使用してこの要件を実装するように依頼されました。

このコードを試してみましたが、パネルが動的に作成されるため、JavaScript 関数は ID を見つけることができません。誰でも私がこれを行うのを手伝ってもらえますか?

重要:ポストバックを停止する必要があります!!!

私のコードは次のとおりです。

<script type="text/javascript">
    function fun1()
    {
       if (document.getElementById("CheckBox1").checked == true)
       {
          document.getElementById("Panel3").visible = true;
       }
    }
</script>

<form id="form1" runat="server">
    <asp:Panel ID="Panel1" runat="server" Height="89px">
       <asp:CheckBox ID="CheckBox1" runat="server" OnClick="fun1()" />
    </asp:Panel>
    <br />
    <asp:Panel ID="Panel3" runat="server" Height="91px" Visible="False">
       <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
       <br />
       <br />
       <asp:Button ID="Button2" runat="server" Text="Button" />
    </asp:Panel>
    <br />
</form>
4

2 に答える 2

1

それはあなたを助けるはずです...

var panelControls = document.getElementById("<%=mypanel.ClientID%>").getElementsByTagName("input");

    for (var i = 0; i < panelControls .length; i++)
        panelControls [i].disabled = true;
于 2012-06-07T11:20:01.647 に答える
0

パネルはサーバー側のコントロールです。ブラウザーにレンダリングするときは、DIV HTML 要素としてレンダリングします。使用する必要があります。

function toogleDisplay(sender)
{
if(sender.checked)
    document.getElementById('<%= Panel3.ClientID %>').style.display = 'block';
else
  document.getElementById('<%= Panel3.ClientID %>').style.display = 'none';
}

ASPチェックボックスコントロールには、このコードを追加する必要があります

    protected void Page_Load(object sender, EventArgs e)
    {
          checkbox1.Attributes.Add("onClick", "toogleDisplay(this);");
Panel3.Style.Add(HtmlTextWriterStyle.Display, "none");
    }
于 2012-06-07T07:45:17.747 に答える