Javascript& ASP .NET问题

时间:2011-01-15 16:16:11

标签: javascript asp.net

我在asp.net页面中实现javascript控件时遇到了一些问题。我想有一组变量根据一些asp按钮控件获取它们的值。然后我根据它们的点击方式操纵这些按钮。我有一些问题:

  1. 我定义并赋值的任何全局变量都将返回null
  2. 我无法运行onload事件,因为我的所有变量都返回null。
  3. 我不能使用visible =“false”的asp.net标签,因为那时javascript因某些原因无法显示控件。
  4. javascript style.visibility =“visible”并没有真正起作用,因为你仍然可以看到按钮的位置 - 它只是不可见。
  5. 所以这是我的代码。 TL,DR是我想在加载时通​​过js有条件地显示/隐藏按钮,然后在不同的按钮点击上隐藏/显示按钮。我知道这是一个范围问题,因为当我测试它们时全局变量返回“null”,但我不知道这个和onload问题的一个好的解决方法。谢谢!

    var btnEdit = document.getElementById("<%= cmdEdit.ClientID %>");
    var btnSave  = document.getElementById("<%= cmdSave.ClientID %>");
    var btnCanvel = document.getElementById("<%= cmdCancel.ClientID %>");
    var btnConfirm = document.getElementById("<%= cmdConfirm.ClientID %>");
    
    
    function HideEdit(){
    
        $(btnEdit).hide();
        $(btnSave).show();
        $(btnCancel).show();
        $(btnConfirm).hide();
    
        document.getElementById("<%= pnlWhy.ClientID %>").style.visibility = "visible";
        document.getElementById("<%= pnlRequest.ClientID %>").style.visibility = "visible";
    }
    
    function testme() {
    alert(btnEdit)
    
    }
    function loadpage(newwine){
    
        if (newwine==true){
            $(btnEdit).hide();
            $(btnSave).show();
            $(btnCancel).show();
            }
        else{
            $(btnEdit).show();
        }
    $(btnConfirm).hide();
    }
    

2 个答案:

答案 0 :(得分:2)

看起来你正在使用jQuery,尽管你没有在标签中提到它。无论如何,可能发生的是您的代码在页面元素实际存在之前运行。在这种情况下,全局引用将为null;实际上他们从零开始。

如果你正在使用jQuery,只需将你的代码放在“准备好”的处理程序中:

$(function() {
  // all your code here
});

答案 1 :(得分:0)

为什么你没有通过jQuery找到元素?它更方便。您还可以通过jQuery方法.addClass(http://api.jquery.com/addClass/)方法设置或删除样式类。如果您在一次单击后设置可见性为真,则在另一次单击后设置可见性为false使用jQuery .toggle jQuery方法(http://api.jquery.com/toggle/