【问题标题】:The control DataSource(or DataSourceID) is not set未设置控件 DataSource(或 DataSourceID)
【发布时间】:2013-06-27 22:11:39
【问题描述】:

我想要两个InputType="Token" 文本框。所以我找到了telerik:RadAutoCompleteBox,它具有创建令牌的属性。

我尝试在我的 aspx 页面中使用以下代码:

<div class="divClass">
    <label for="RadAutoCompleteBox1">
        Continents:</label>
    <telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" runat="server" Width="250" DropDownHeight="150"
        DropDownWidth="250">
    </telerik:RadAutoCompleteBox>
</div>

他是我的code behind页面:(注意:这段代码是if (!IsPostBack)OUT,但在PageLoad()中) em>

RadAutoCompleteBox1.DataSource = new List<string>() { "Europe", "America", "Asia", "Africa", "Australia" };

我在相同的页面中使用了 Telik 的其他示例,例如 telerik:RadComboBoxtelerik:RadWindowtelerik:RadTabStrip 和其他......每个人都很好!


当我加载页面并尝试将任何条目添加到 RadAutoCompleteBox1 时,我收到以下错误:


我做错了什么?我错过了什么?

  • 我尝试添加RadAutoCompleteBox1.DataBind();
  • 我尝试了一个空的 ArrayList RadAutoCompleteBox1.DataSource = new ArrayList();

PS:正如我所说,我需要其中两个 “Token TextBox kind”,第二个不能有 DataSource,因为我将使用 @987654335 @。这就是为什么我尝试使用空的 ArrayList


我不确定这是否是解决我的问题的最佳方法。但是,机械师正是我所需要的,我根本无法完成这项工作。

【问题讨论】:

    标签: c# autocomplete telerik datasource token


    【解决方案1】:

    我试过这个并为我工作。这是我的代码:

    <div>
                <fieldset>
                    <legend>Token mode</legend>
                    <telerik:RadAutoCompleteBox runat="server" ID="RadAutoCompleteBox1" EmptyMessage="Please type here"
                        AllowCustomEntry="true" InputType="Token" Width="350">
                    </telerik:RadAutoCompleteBox>
                </fieldset>
                <fieldset>
                    <legend>Token mode</legend>
                    <telerik:RadAutoCompleteBox runat="server" ID="RadAutoCompleteBox2" EmptyMessage="Please type here"
                        AllowCustomEntry="true" InputType="Token" Width="350">
                    </telerik:RadAutoCompleteBox>
                </fieldset>
            </div>
    

    这是我的代码:

    protected void Page_Load(object sender, EventArgs e)
        {
            RadAutoCompleteBox1.DataSource = new List<string>() { "Europe", "America", "Asia", "Africa", "Australia" };
            RadAutoCompleteBox2.DataSource = new List<string>();
        }
    

    这是我的输出

    自动完成演示可在此处找到: http://demos.telerik.com/aspnet-ajax/autocompletebox/examples/default/defaultcs.aspx

    如果这对你有帮助,请告诉我

    【讨论】:

    • 感谢您的回复,将在这里测试并通知您。
    • 设置数据源后尝试调用DataBind()
    【解决方案2】:

    好的,我不确定这是否应该这样做,但它确实有效。

    我用[WebMethod]

    [WebMethod]
    public static List<string> LoadRadAutoCompleteBox1()
    {
        return new List<string>() { "Europe", "America", "Asia", "Africa", "Australia" };
    }
    
    [WebMethod]
    public static List<string> LoadRadAutoCompleteBox2()
    {
        return new List<string>();
    }
    

    在aspx中

    <telerik:RadAutoCompleteBox runat="server" ID="RadAutoCompleteBox1" EmptyMessage="Please type here" SelectMethod="LoadRadAutoCompleteBox1" 
        InputType="Token" Width="350">
    </telerik:RadAutoCompleteBox>
    
    <telerik:RadAutoCompleteBox runat="server" ID="RadAutoCompleteBox2" EmptyMessage="Please type here" SelectMethod="LoadRadAutoCompleteBox2" 
        AllowCustomEntry="true" InputType="Token" Width="350">
    </telerik:RadAutoCompleteBox>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-28
      • 2010-10-19
      • 2011-06-15
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      相关资源
      最近更新 更多