【问题标题】:Set buttons display none property by passing button id from Code behind to Jquery Function?通过将按钮ID从后面的代码传递给Jquery函数来设置按钮显示无属性?
【发布时间】:2016-04-04 10:16:49
【问题描述】:

我有一个函数的代码,给我一个按钮ID。现在我想隐藏使用jQuery的特定按钮。这是我背后的代码

if (dt.Rows.Count > 0) {
    for (int i = 2; i < dt.Columns.Count; i++) {
        int status = Convert.ToInt32(dt.Rows[0][i].ToString());
        if (status == 1) {
            string columnname = dt.Columns[i].ToString(); //here column name is button id
            ClientScript.RegisterStartupScript(this.GetType(), "getid", "getid('" + columnname + "');", true);
        }
    }
}

这是我无法制作的jQuery函数:

$(document).ready(function () {
    function getid(id){
        $(id).toggle('hide');
    } 
});

【问题讨论】:

  • toogle 应该是toggle
  • $(id).css('可见性','hidden');即使这不起作用
  • $(id).css('visibility', 'hidden'); 应该是$("#" + id).css('visibility', 'hidden');
  • $("#"+id).hide() 或 $("#"+id).toggle('hide')
  • 我硬编码了这个 $(document).ready(function () { $('#btn1').css('visibility', 'hidden'); });即便是这不起作用@rajaprabhuaravindasamy span>

标签: javascript jquery asp.net .net


【解决方案1】:

您可以尝试确保浏览器的开发人员工具 (F12) 中没有出现错误(检查控制台部分)。

此外,由于您的函数是在您的 jQuery“文档就绪”块中定义的,因此在触发启动脚本时它可能不可用。您可以尝试通过以下方式之一解决此问题:

尝试在 jQuery 部分之外定义您的函数

function getid(id){
    $(id).toggle('hide');
} 

另外,如果你根本不想依赖 jQuery,你可以简单地使用下面的 sn-p 代码:

function getid(id){
     var e = document.getElementById(id);
     e.style.display = (e.style.display == "block") ? 'none' : 'block';
} 

考虑添加延迟

根据我的经验,我发现 RegisterStartupScript 方法通常会在您调用的内容真正准备好被调用之前触发。您可以通过使用 setTimeout() 函数为调用本身添加一点延迟来解决此问题:

// Set a 10ms delay prior to calling your getid function
ClientScript.RegisterStartupScript(GetType(), "getid", "setTimeout(function(){ getid('" + columnname + "');},10);", true);

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 2017-04-25
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2015-01-06
    相关资源
    最近更新 更多