asp:隐藏无法访问后面的代码

时间:2015-09-16 14:06:30

标签: javascript jquery asp.net vb.net

我对jQuery和asp.net(VB)的经验很少。

我想要实现的是:
1.我的页面有很少的文本框,还有一个包含三个标签的面板,一个GridView和一个HiddenField。
2.页面加载时隐藏面板
3.在页面上,用户在文本框内单击,然后按F2键
4. jQuery检测F2键并提取文本框类和值
5. HiddenField / HiddenBoxID值也设置为文本框类
6.触发按钮的点击事件
7.现在在代码后面提取hiddenID值并做进一步处理
8.使面板可见

我的jQuery看起来像这样:

// Extract TextBox ID and Text Value
var currentClass = $(this).attr('Class');
var currentVal = $('.' + currentClass + '').val();
$('#HiddenBoxID').val(currentClass);
$("#helpButton").trigger('click');

我的帮助按钮代码如下所示:

Dim HuntBoxID As String
HuntBoxID = HiddenBoxID.Value

这是问题,当面板设置为visible = true然后我能够从Jquery到后面的代码获取HiddenBoxID值,但是当我使面板可见= false时,我无法从jQuery发送值后面的代码。我不知道为什么?我正在使用chrome浏览器并在调试控制台(F12)中我可以看到在currentClass和currentVal中设置的值。
有人可以告诉我如何实现上述目标 也有人可以告诉我我做错了什么,一些代码示例将非常有用。

2 个答案:

答案 0 :(得分:2)

当您将控件的Visible属性设置为false时,该控件的HTML标记都不会发送到客户端。就客户而言,该控制不存在。您可以通过查看客户端上的HTML源来验证。

不使用Visible属性,而是使用CSS样式。这是在C#中,但VB.NET语法应该类似:

HiddenBoxID.Style.Add("display", "none");

当您使用CSS样式操作它时,标记仍将发送到客户端,因此您可以稍后使用客户端代码显示该元素。例如,使用jQuery:

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

答案 1 :(得分:0)

已经有一段时间了,因为我已经做了类似你提到的事情,特别是使用客户端javascript / jQuery ...但我的猜测是你无法获得客户端ID,因为asp.net甚至没有发送对客户端的控制,因为它是可见的=。

我可能完全错了...但是当你说你在页面加载时立即隐藏面板时...我假设你在代码背后做了那个服务器端,对吧?也许尝试将其设置为隐藏在jQuery中。换句话说,确保控制权已发送到客户端,然后使用jQuery立即隐藏它。

要看的另一件事是点击F12,看看你的隐藏html是否在客户端的源中可见。如果不是,那么asp.net甚至没有将控件发送到您的客户端,因此您无法获取客户端ID。

相关问题