【问题标题】:Getting Value from a ComboBox?从组合框中获取价值?
【发布时间】:2019-05-29 22:50:18
【问题描述】:

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

<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";
  } 

我已经尝试了很多方法,但问题似乎与表单加载方式有关,并且组合框此时没有值。我总是收到我的组合框“cboAgree”为空的错误。

谁能给点建议?

【问题讨论】:

    标签: c# asp.net telerik selectedvalue radcombobox


    【解决方案1】:

    我相信您想要的 - 根据您在 other post 中的代码结构方式,将事件处理程序添加到您的组合框中,以便在更改所选索引时检查选择。

    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">
    

    【讨论】:

    • 嗨,马特,感谢您的解释!它可以工作,但是当我检查页面时,我收到以下错误Uncaught TypeError: Cannot read property 'get_item' of undefined 另外,我认为这可能与表单的加载有关。下拉列表中的默认值是“同意”,所以最初网格是隐藏的,当我将其更改为“不同意”时,它会出现,但如果我将其更改回“同意”,则不会发生任何事情。我认为这可能是错误发生的地方?有什么我可以添加到javascript代码中来帮助解决这个问题的吗?我会告诉你我已经拥有的......
    • Sys.Application.add_load(FormLoad) function FormLoad() { onSelectedIndexChanged(true); } 这是我用来加载表单的东西。
    • 嗯,所以错误消息告诉我 eventArgs 未定义。如果您检查呈现的 HTML,您的 ComboBox 是否呈现为 Select 控件,其中包含一些 Option 元素?
    • 如果上述情况属实,那么以下应该有效:pastebin.com/cc4DfA61.
    • 没问题@Matt!感谢你的帮助。正如我提到的,您的一种方法部分有效,因此我可以尝试并以此为基础!再次感谢! :)
    猜你喜欢
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多