未设置控件DataSource(或DataSourceID)

时间:2013-06-27 22:11:39

标签: c# autocomplete telerik datasource token

我想要两个InputType="Token" textBox。所以我发现telerik:RadAutoCompleteBox具有创建令牌的属性。

TokenStyle

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

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

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

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

我在同一页面中使用了其他与telerik相关的示例,例如telerik:RadComboBoxtelerik:RadWindowtelerik:RadTabStrip和其他人......每个人都可以正常工作!


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

Error


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

  • 我尝试添加RadAutoCompleteBox1.DataBind();
  • 我尝试了一个空的ArrayList RadAutoCompleteBox1.DataSource = new ArrayList();
PS:正如我所说,我需要其中两个 “Token TextBox kind” ,第二个不能拥有DataSource,因为我将使用{{ 1}}。这就是我尝试使用空ArrayList

的原因

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

2 个答案:

答案 0 :(得分:0)

我试过这个并且适合我。这是我的代码:

<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>();
    }

这是我的输出

enter image description here

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

如果这有助于你,请告诉我

答案 1 :(得分:0)

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

我使用了[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>