Botframework在第一个ChoiceSet选择时获得第二个ChoiceSet值

时间:2018-09-04 05:14:11

标签: c# botframework

有关Botframework Choiceset / Dropdown的问题。

我需要第二个Choiceset值才能在选择第一个Choiceset值时进行更改。有可能在botframework中做到吗?类似于第一个Choiceset值的eventchange。

我知道如何创建ChoiceSet,但无法弄清楚如何检测第一个Choiceset选择的事件。

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我需要第二个Choiceset值才能在选择第一个Choiceset值时进行更改。有可能在botframework中做到吗?类似于第一个Choiceset值的eventchange。

第一种方法:您可以尝试在自适应卡中显示第一个Input.ChoiceSet,在用户选择一个选项并将选择内容发送回您的机器人后,您可以动态填充该卡的Choices属性第二个Input.ChoiceSet,并在另一张自适应卡片中显示。

  

我正在使用WebChat频道。

第二种方法:正如我在评论中提到的那样,您将Webchat嵌入网站中,您可以尝试实现JavaScript客户端上的要求。

<script>
    var botConnection = new BotChat.DirectLine({ secret: '{directline_secret_here}' });

    var userinfo = { id: '{user_id_here}'};

    BotChat.App({
        botConnection: botConnection,
        user: userinfo,
        bot: { id: '{bot_id_here}' },
        resize: 'detect'
    }, document.getElementById("bot"));


    botConnection.activity$
        .filter(activity => activity.type === "message")
        .subscribe(activity => BindOnChangeEventToSelect(activity));

    function BindOnChangeEventToSelect(activity) {

        //Attach a handler to 'change' event of <select> element
        $("select.ac-multichoiceInput:nth-of-type(2n+1)").on("change", function () {
            $(this).siblings("select").val($(this).val());
        }); 
    }
</script>

测试结果:

enter image description here