从组合框获得价值?

时间:2019-05-29 22:50:18

标签: c# asp.net telerik selectedvalue radcombobox

我看过这里的许多其他线程,这些线程都有类似的问题,但无法解决我的问题。我在组合框中使用了以下代码:

<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”为空的错误。

有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

我相信您想要的-基于您在other post中结构化代码的方式,是在组合框中添加一个事件处理程序,以便在更改所选索引时检查选择。 / p>

documentation here中介绍了这种情况,但是基本上您想做的是:

  1. 在现有的javascript中添加以下代码块:
function onSelectedIndexChanged(sender, eventArgs) 
{
    var item = eventArgs.get_item();

    if (value == "Disagree") {
        commentsGrid.style.display = "block";
    } else {
        commentsGrid.style.display = "none";
    } 
}

我建议将display属性设置为noneblock,而不是将visibilityhiddenvisible一起使用。 This answer涵盖了差异以及在这种情况下您为什么更喜欢使用display属性的原因。

  1. 更新您的ComboBox以调用新的Javascript方法:
<sq8:ComboBox runat="server" ID="cboAgree"
onclientselectedindexchanged="onSelectedIndexChanged">