C# 单击“提前键入”下拉列表后发回

C# 单击“提前键入”下拉列表后发回,c#,asp.net,drop-down-menu,postback,typeahead,C#,Asp.net,Drop Down Menu,Postback,Typeahead,我有一个我创建的类型a head下拉列表。显然,我必须将AutoPostBack设置为false,否则它将在用户键入时发回。但我想在use做出选择后再回来 我不想用提交按钮之类的东西。说来话长,相信我,这不是解决我的问题的办法 在javascript中,当用户单击enter I post back时,它会提前键入。那很好 然而,当用户用鼠标点击时会发生什么?所以我使用onblur事件进行回发。但是,这需要在下拉列表之外单击 我希望在他们单击新项目时进行回发。所以就像是当项目发生变化时的回发,但前

我有一个我创建的类型a head下拉列表。显然,我必须将AutoPostBack设置为false,否则它将在用户键入时发回。但我想在use做出选择后再回来

我不想用提交按钮之类的东西。说来话长,相信我,这不是解决我的问题的办法

在javascript中,当用户单击enter I post back时,它会提前键入。那很好

然而,当用户用鼠标点击时会发生什么?所以我使用onblur事件进行回发。但是,这需要在下拉列表之外单击

我希望在他们单击新项目时进行回发。所以就像是当项目发生变化时的回发,但前提是我通过点击它来改变它


有什么想法吗?

如果您使用的是最新版本的Typeahead,该库实际上提供了一组可用的回调函数

要执行回调,只需在预先初始化类型时通过bind方法传入回调。示例代码:

        // attach type-ahead to class
        $autoComplete.typeahead({
            hint: true,
            highlight: true,
            minLength: 1
        }, {
            displayKey: 'value',
            source: substringMatcher($autoCompleteData)
        }).bind("typeahead:selected", function (obj, datum, name) {
            console.log(obj, datum, name);
        });

当用户单击某个选项或点击某个选项上的返回键时,将执行末尾的.bind方法。将console.log条目替换为您想要执行的任何操作,即指向提交按钮或触发单击。

没有想法吗?我仍在寻找解决方案…使用onblur进行回发是危险的,因为任何导致控件失去焦点的操作都会导致回发。是的。我同意,因为即使单击ddl然后单击off,它也会回发。但是,虽然这是一种激励,但它对web应用程序没有负面影响,而且比选择时使用更有效,因为这样之前的类型就不起作用了。但我愿意接受所有其他建议。。。?