当修改 tbody 内的文本框时,我在表格内有一个 tbody,该 tbody 在 javascript 调用中显示/隐藏。此 tbody 最初在其初始标记中设置为 display = none,但如果它已包含值,则会在代码隐藏中显示。
标记:
<tbody class="tbDOIndustryModifierCls" style="width: 100%;display:none;margin:0" id="tbDOIndustryModifierComments" runat="server">
<td>
<asp:Label CssClass="raterLabel lblDOIndustryModifierComments" ID="Label11" runat="server">  Comments:
</asp:Label>
</td>
<td colspan="2">
<asp:textbox Width="100%" ID="txtDOIndustryModifierComments" CssClass="txtDOIndustryModifierComments" runat="server"></asp:textbox>
</td>
</tbody>
页面加载代码隐藏:
If Not IsNothing(comment) Then
txtDOIndustryModifierComments.Text = comment
tbDOIndustryModifierComments.Style.Add(DISPLAY, BLOCK)
End If
因此,场景是“comment”字段具有值,因此此 tbody
在页面加载时的代码隐藏中设置为 display=BLOCK
。然后用户弄乱了一个控件,并将同一个 tbody
设置为 display=none (通过 jquery hide()
)。
我还有一个“保存”按钮,它是在我的 vb.net 代码隐藏中处理的。
我遇到的问题是我可以通过 javascript
将 tbody 的显示属性更改为“none”(使用 jquery
hide()
),但是当我点击保存按钮时,代码隐藏仍然将 tbody
视为 display = block
。
代码隐藏保存方法(在 javascript
设置 display=none
后,此检查的计算结果为 false)
If (tbDOIndustryModifierComments.Style(DISPLAY) = NONE) Then _
'logic
如果客户端修改了属性,有什么方法可以查看 tbody
(或其文本框)在代码隐藏中是隐藏还是显示?
抱歉,如果我的措辞有问题,请告诉我任何我可以澄清的事情。感谢您抽出时间。
最佳答案
回发时传回服务器的唯一信息是 <input>
等元素中保存的值。 , <textarea>
或<select>
以及 ASP.NET 在 View 状态中存储的信息(其本身存储在 <input type='hidden'>
中。(这些是显示页面时由 ASP.NET 创建(呈现)的基本 HTML 元素。)
这意味着,如果您在客户端动态更改这些基本元素之外的任何内容,它们将不会自动发送回服务器。
我建议您创建一个新的 <asp:HiddenField>
它将存储您的表体的状态。然后在回发时,您可以使用该字段中的值查看是否需要显示/隐藏表格主体。
(请记住在页面初始渲染时还设置隐藏字段中的值,以便即使不更改任何内容也可以获得正确的值)
关于javascript - 代码隐藏未检测到 JavaScript 中更改的显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917015/