Добавление кнопок и OnClientClick программным способом, но проблема с постбэком
Я пытаюсь скрыть некоторые div, используя Javascript, но я думаю, что пост продолжает перезагружать страницу. Чтобы сделать вещи более сложными, мои кнопки добавляются программно моим кодом.
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..
Спасибо за любые предложения заранее.
1 ответ
Вы не показали, в какое событие вы добавляете элементы управления. Но я полагаю из вашей проблемы, что вы делаете это в Page_Load. Если да, попробуйте перейти в событие OnInit.
Во-вторых, в Page_Load вам нужно проверить
if(!IsPostBack)
{
//your code for adding controls
}
Надеюсь, это поможет.