C# 以编程方式添加按钮和OnClientClick,但仍存在回发问题

C# 以编程方式添加按钮和OnClientClick,但仍存在回发问题,c#,javascript,asp.net,postback,onclientclick,C#,Javascript,Asp.net,Postback,Onclientclick,我试图用Javascript隐藏一些div,但我认为post back会不断地重新加载页面。 为了使事情变得更复杂,我的代码隐藏以编程方式添加了我的按钮 foreach (string line in thefilters) { Button newButton = new Button(); newButton.ID = Convert.ToString(line); newButton.Text = Co

我试图用Javascript隐藏一些div,但我认为post back会不断地重新加载页面。 为了使事情变得更复杂,我的代码隐藏以编程方式添加了我的按钮

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;

        }

函数隐藏分区(过滤器){
var pnl_right=document.getElementById(“pnl_right”);
var listofements=pnl_right.getElementsById(“div”);
for(var i=0;i
我可能在javascript中遇到了我想要实现的问题,但我相信如果我能够停止回发,那么我可以自己解决javascript


感谢您提前提出建议。

您尚未显示您正在添加控件的事件。但我根据你的问题假设你是在页面加载中这样做的。如果是,请尝试进入OnInit事件

第二,在页面加载中,您需要检查

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

希望有帮助。

您检查过浏览器的控制台吗?Javascript中可能存在错误,这会阻止执行
return false
,因此实际上不会执行您想要的操作。您是否可以在Javascript函数中的某个位置放置一个
警报来查看它是否实际被调用?您的OnClientClick可能应该设置为“return hide_div(“”+newButton.ClientID+”)”;