【发布时间】:2012-12-04 05:48:28
【问题描述】:
我正在尝试使用 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..
提前感谢您的任何建议。
【问题讨论】:
-
您检查过浏览器的控制台吗? Javascript 中可能存在错误,这会阻止
return false执行,因此实际上并没有按照您的意愿行事。您可以在 Javascript 函数中的某处放置alert以查看它是否实际被调用? -
你的 OnClientClick 应该设置为 "return hide_div('" + newButton.ClientID + "')";
标签: c# javascript asp.net postback onclientclick