C# 使用DevExpress ASPXComboBox的动态控件存在Javascript问题

C# 使用DevExpress ASPXComboBox的动态控件存在Javascript问题,c#,dynamic,combobox,controls,devexpress,C#,Dynamic,Combobox,Controls,Devexpress,我对Dev Express组件(即AspxComboBox)有一个问题 我的上下文是这样的:我想为我的一些业务实体动态生成接口。我设计了一个用户控件,该控件接收一些元数据,并根据元数据向界面添加文本框、日期编辑器和组合框。当所有这些控件以非动态方式添加到页面时,它们的工作都很有魅力。 但是,当我从C代码中添加它们时,下面的Javascript行有一个错误: document.getElementById("usercontrol_combo_I").setAttribute("autocompl

我对Dev Express组件(即AspxComboBox)有一个问题

我的上下文是这样的:我想为我的一些业务实体动态生成接口。我设计了一个用户控件,该控件接收一些元数据,并根据元数据向界面添加文本框、日期编辑器和组合框。当所有这些控件以非动态方式添加到页面时,它们的工作都很有魅力。 但是,当我从C代码中添加它们时,下面的Javascript行有一个错误:

document.getElementById("usercontrol_combo_I").setAttribute("autocomplete", "off");
“usercontrol”是我正在设计的用户控件的ID。“combo”是组合的ID

错误是在HTMLDOM中找不到ID为(“usercontrol\u combo\u I”)的元素

我发现,如果我选择不在组合本身上使用DataBind(注释掉对aspxcombox实例的DataBind()方法的任何调用),则不会呈现出现错误的JS行(在最终的HTML中不存在)。但是,如果我这样离开它,任何后续的回发都会清空组合列表(组合中没有更多的项目)。组合的数据源是一个IList实例,它在每次页面加载时都被分配(即使回发==true)

有一篇文章报道了同样的问题,但是团队没有给出答案


这里有人遇到过这个问题并找到了解决方法吗?

使用ASP.NET Dev如果要绑定页面加载事件,则需要将所有请求绑定回服务器,这也包括回调

现在不支持获取HTML元素并设置其属性。关闭autoComplete的唯一受支持的方法是将回调发送到服务器,并在服务器端属性上关闭autoComplete,该属性将更新控件。现在,组合框必须是执行回调或将框包装在CallbackPanel中的组合框


您是否也在设置ASPxComboBox的ClientInstanceName?

实际上,我刚刚找到了一个简单的解决方法。 如果我只是在页面本身的page_load事件中对生成的控件调用DataBind(),那么问题就消失了

例如:

protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load();
        this.control.DataBind();
    }
其中“control”是包含组合框的UserControl。 奇怪的是,我甚至在回发和回调时调用数据绑定

但是,嘿,它起作用了

我想在使用Devexpress时,我还遗漏了一些东西。 但是“熟能生巧”

谢谢你的回复