2009-06-08 16 views
6

私はページにTelerik RadComboBoxを持つWebページを持っています。このComboBoxのプロパティの1つはEmptyMessageで、アイテムが選択されていないときにコンボボックスにメッセージを入力します。私はコンボボックスを実行時にデータソースにバインドしています。何らかの理由でこのEmptyMessageを拭き取ります。私のデータアイテムを手元に置いて、そこに空のメッセージを残す方法はありますか?そしてそれを空のメッセージにデフォルト設定しますか?空の文字列をRadComboBoxに追加

答えて

7

Telerikで受け入れられている回答のように、クライアントサイドスクリプトを使用してテキストの編集を防止しているようです。

Telerik forum page

<telerik:Radcombobox ID="RadComboBox1" runat="server" AllowCustomText="True" EmptyMessage="-please select one-">  
<Items>  
    <telerik:RadComboBoxItem runat="server" Text="Item1"></telerik:RadComboBoxItem>  
    <telerik:RadComboBoxItem runat="server" Text="Item2"></telerik:RadComboBoxItem>  
</Items>  

<script type="text/javascript"> 
function pageLoad() 
{ 
    var combo = $find("<%= RadComboBox1.ClientID %>"); 
    var input = combo.get_inputDomElement(); 
    input.onkeydown = onKeyDownHandler; 
} 
function onKeyDownHandler(e) 
{ 
    if (!e) 
    e = window.event;   
    e.returnValue = false; 
    if (e.preventDefault) 
    { 
    e.preventDefault(); 
    } 
} 
</script> 
0

'AppendDataBoundItems'がtrueに設定されていますか?

+0

これは悲しいことですが、これはそれとは関係ありません。 EmptyMessageは、何らかの理由でAllowCustomTextがtrueに設定されている場合にのみ使用されます。ユーザーがカスタムテキストを入力することを許可せずにEmptyMessageスタイルを使用することはできません。 – Grank

0

もう1つの方法は、バインド直後にコンボボックスに項目を追加してから、選択して項目を設定することです。

+0

これは最終的に@ teの答えが提供するものです。 –

+0

@rockinthesixstringこの回答が投稿されてから4ヶ月後にシンプルコードを提供したようです... – Nick

-3

回答が見つかりました。好奇心が強い人や誰かが似たようなことをする必要がある場合は、AllowCustomTextプロパティをTrueに設定する必要があります。これは私の問題を修正しました。

+1

これは、ユーザーが強制的にではなく独自のカスタムテキストを入力できるため、多くの場合、良い解決策ではありません既存のアイテムの1つを選択します。私はほとんどの場合、このタイプの振る舞いは望ましくないと思います。 –

+0

カスタムテキストを許可するのは正解ではありません。ほとんどの場合、あなたが提供する値を使用できるようにしたいだけです。 「正しい」答えは@ teの答えをご覧ください。 –

+1

あなたはどうすれば私の答えをマークできますか?私はその質問をしている人です。私の答えは私が持っていた問題を解決しました。 – Icemanind

5
RadComboBox1.Items.Insert(0, New RadComboBoxItem("Select a continent")) 

これは、コンボボックスの最初の項目として「大陸の選択」を追加します。

+2

この問題は、EmptyMessageスタイルを使用しないことになります。なぜRadComboBoxを使用するのか。テンプレートを使用している場合を除いて、古いasp:DropDownListに戻ってもかまいません。 :P – Grank

+0

これは私が知っている方法ですが、@Grank - 私は@ teの方法を使用し、それは驚異的です。「なぜRadComboBoxを使用するのか」と尋ねると、いいオートドロップダウンリストでは得られない優れたオートコンプリート/オートサジェスト機能のためです。 –

0

だけEmptyMessageプロパティを設定し、設計時にはこの

ComboBox.Text = String.Empty 
1

を置きます。

<telerik:RadComboBox ID="ddlCategory" EmptyMessage="-Select-" runat="server" Width="120px" DropDownWidth="100px" AllowCustomText="true"> 
</telerik:RadComboBox>  

実行時に次のコードが動作します。

ddlCategory.Text = ""; 
ddlCategory.ClearSelection(); 
関連する問題