c#和javascript之间的“可见”属性

时间:2011-11-24 17:27:33

标签: c# jquery asp.net visible

首先为这个奇怪的头衔道歉。想不到一个哈哈。

当我隐藏(c#)后面的代码中的元素时,例如:

btnRemoveAvail.Visible = false;

然后以下jquery行不会工作(当取消隐藏时):

$('#btnRemoveAvail').show();

(它根本不会返回任何错误,好像它的100%很酷......但没有任何反应)

我尝试了以下(因为jquery论坛说.show类似于将display设置为block ..?): document.getElementById("btnRemoveAvail").style.display = "block";

这又返回了一个错误: document.getElementById(“btnRemoveAvail”)为空

我确信它可能很简单,我完全误解了代码背后和HTML ..

2 个答案:

答案 0 :(得分:3)

在webforms(我假设你正在使用webforms)中,当你将控件可见性设置为false时,它根本不会呈现为html,所以它在DOM中不可用于jquery操作。

如果您希望它可用,您可以从后面的代码设置其客户端属性。

 btnRemoveAvail.Attributes.Add("style","display:none");

您现在可以通过jquery操纵其可见性或任何其他属性,因为它可以在DOM中使用但只是不可见。

希望这有帮助。

答案 1 :(得分:1)

您是否可以检查您的页面中是否创建了一个名为btnRemoveAvail的元素?

我打赌它没有被创造出来。我认为从服务器端将按钮设置为Visible = false根本不会在客户端上呈现对象。

您需要做的是设置按钮的样式,使其包含display:none。这样,元素将被渲染,但通过CSS隐藏。然后你可以调用.show方法,它应该可以工作。