1

我正在创建一个具有自动完成功能的完全自定义(仅继承自 WebControl)组合框/下拉列表搜索控件。

JQuery 处理为列表项(其中包含字符串的 div)分配onhover 和 onclick 事件,并处理 Web 服务调用以获取匹配文本的项列表。

服务器处理自定义属性和控件呈现。

问题是我需要实现一个类似于SelectedValue的属性,以便当用户从搜索结果中选择一个项目时,该值可以在服务器上用于其他处理。我已经进行了几天的研究,但还没有找到一种清晰、简洁的方式来处理回发数据。

我确实读过一篇博客,其中提到了实现IPostBackDataHandler接口,但是我目前没有实现RaisePostDataChangeEvent()调用服务器方法(如SelectedIndexChange)的调用的实现。

public void RaisePostDataChangedEvent()
{
    this.SelectedIndexChanged(EventArgs.Empty);
}

现在的问题是:有没有人有处理这个的建议?还是我最好简单地从下拉列表控件继承并覆盖现有功能?

我觉得我错过了一个非常小的部分,可以将这一切组合在一起。

4

1 回答 1

0

你有没有考虑从微软的源服务器上拉下源代码,看看他们是如何实现 DropDownList 的?这将让您了解他们如何解决问题的绑定和事件部分,并让您很好地了解它在其他方面的作用。通过这种方式,您可以决定是否要继承它,或者您是否可以借用一些想法来了解他们如何实现 IPostBackDataHandler。

由于我不知道您具体在做什么,因此我无法建议您是否应该按原样从下拉列表中继承,但根据我对您正在做的事情的印象,我会说您可能不会。

您还可以查看 AjaxControlToolkit 的源代码,因为它具有类似的组件。同样,您可以获得有关如何处理这些特定事物的想法,并根据您自己的需要进行调整。

于 2009-12-11T21:12:40.267 回答