0

Javascript を使用していくつかの div を非表示にしようとしていますが、ポストバックによってページがリロードされ続けると思います。事態をさらに複雑にするために、私のボタンはコード ビハインドによってプログラムで追加されます。

foreach (string line in thefilters)
        {
            Button newButton = new Button();
            newButton.ID = Convert.ToString(line);
            newButton.Text = Convert.ToString(line);
            newButton.CssClass = "tblbutton";
            //newButton.Attributes.Add("onclick", "hide_div("+newButton.ID+")");
            newButton.OnClientClick = "return hide_div('" + newButton.ID + "')";
            pnl_left.Controls.Add(newButton);
        }

私のjavascriptは次のようにヘッダーにあります。

<script type="text/javascript">
        function hide_div(filter) {
            var pnl_right = document.getElementById("pnl_right");
            var listofelements = pnl_right.getElementsById("div");
            for (var i = 0; i < listofelements.length; i++) {
                if (listofelements[i].id.indexOf(filter) == 0) {

                    document.getElementById(listofelements[i].id).style.display = 'inline';
                }
                else {
                    document.getElementById(listofelements[i].id).style.display = 'none';
                }
            }
            return false;

        }

私が達成したいことのためにJavaScriptに問題があるかもしれませんが、ポストバックを止めることができれば、JavaScriptを自分で解決できると確信しています..

事前にご提案いただきありがとうございます。

4

1 に答える 1

1

コントロールを追加するイベントを示していません。しかし、私はあなたの問題からあなたがPage_Loadでこれをしていると仮定しています。はいの場合は、OnInitイベントに移動してみてください。

次に、Page_Loadでチェックする必要があります

if(!IsPostBack)
{
//your code for adding controls
}

お役に立てば幸いです。

于 2012-12-04T05:56:41.140 に答える