我看过这里的许多其他线程,这些线程都有类似的问题,但无法解决我的问题。我在组合框中使用了以下代码:
<sq8:ComboBox runat="server" ID="cboAgree"><Items>
<sq8:ComboBoxItem runat="server" Text="Agree"></sq8:ComboBoxItem>
<sq8:ComboBoxItem runat="server" Text="Disagree"></sq8:ComboBoxItem>
</Items>
</sq8:ComboBox>
<sq:BindableControl runat="server" TargetControlID="cboAgree" DataField="Agreement"></sq:BindableControl>
我想获取选定的值(“同意”或“不同意”),并以此为条件来隐藏/取消隐藏表单上的网格:
if (value == "Disagree") {
commentsGrid.style.visibility = "visible";
}else{
commentsGrid.style.visibility = "hidden";
}
我已经尝试了很多方法,但是问题似乎与表单加载的方式有关,并且组合框此时没有值。我总是收到我的comboBox“ cboAgree”为空的错误。
有人可以建议吗?
答案 0 :(得分:0)
我相信您想要的-基于您在other post中结构化代码的方式,是在组合框中添加一个事件处理程序,以便在更改所选索引时检查选择。 / p>
documentation here中介绍了这种情况,但是基本上您想做的是:
function onSelectedIndexChanged(sender, eventArgs)
{
var item = eventArgs.get_item();
if (value == "Disagree") {
commentsGrid.style.display = "block";
} else {
commentsGrid.style.display = "none";
}
}
我建议将display
属性设置为none
和block
,而不是将visibility
与hidden
和visible
一起使用。 This answer涵盖了差异以及在这种情况下您为什么更喜欢使用display
属性的原因。
<sq8:ComboBox runat="server" ID="cboAgree"
onclientselectedindexchanged="onSelectedIndexChanged">