2011-06-30 16 views
2

データソースからデータを取り込むDropDownListがあります。それがバインドされた後、リストの一番上に空のフィールドを配置して、ユーザーに空白に見えるようにします(ある種の「デフォルトアイテム」を作成します)。 SelectedIndexChangedイベントを処理するコードがありますが、ユーザーが空のListItemを選択した場合は、実際に実行する必要はありません。ここでDataBound DropDownListの空白/既定のListItemに対してPostBackを無効にする

は私のコードです:

.aspxの

<asp:DropDownList ID="dropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="dropDownList_SelectedIndexChanged"> 
</asp:DropDownList> 

ときに、ユーザー私は、ポストバックを行うためのページを必要としないので、C#分離コードが空白のListItem

dropDownList.Items.Insert(0, new ListItem(String.Empty, String.Empty)); 
dropDownList.SelectedIndex = 0; 

を追加しますこの特定のインデックスをクリックするだけで、のポストバックを無効にしたいだけです。このlistitem。これも可能ですか?もしそうなら、どうですか?

答えて

3

つまり、あなたが最初の(空の)項目を選択できるようにしたい場合は、これは別の方法として(ポストバックを行うとしない)項目が選択できない

<asp:DropDownList runat="server" ID="dddl"> 
    <asp:ListItem Text="" disabled="disabled" Selected="True"></asp:ListItem> 
    <asp:ListItem Text="test"></asp:ListItem> 
</asp:DropDownList> 

を行いますポストバックはできません。

<asp:DropDownList runat="server" ID="dddl" AutoPostBack="true" onchange="if(this.selectedIndex == 0)return false;"> 
    <asp:ListItem Text="" Selected="True"></asp:ListItem> 
    <asp:ListItem Text="test"></asp:ListItem> 
</asp:DropDownList> 
+0

これは表示さえしないようにします...私はそれを表示し、選択可能にしたいだけです。何もしないでください。 –

+0

残念ですが、 'disabled =" disabled "' – Magnus

+0

私は自分のコードビハインドからこれを行う必要があります。これは、ドロップダウンリストをデータバインディングしているので(現在のリスト項目をすべて消去します)コードビハインドからこれを試してみると、リスト項目に「無効な」プロパティがないと言われています。 –

1

投稿する前に値が空であるかどうかをチェックするJS関数を実行するためにonChange属性を追加できますか?

設定disabled="disabled"

dropDownList.Attributes.Add("onChange", "javascript: return ddlChange()"); 

function ddlChange 
{ 
    if(document.getElementById("<%= dropDownList.ClientID %>").value == "") 
     return false; 

    return true; 
} 
+0

何らかの理由で、すべてのListItemに対してfalseが返されますか? –

2

必要なフィールドバリデーターを追加できます。次に、DropDownListのCausesValidationプロパティをtrueに設定します。これによりポストバックが防止され、エンドユーザーからのフィードバックも得られます。

<asp:DropDownList ID="dropDownList" runat="server" AutoPostBack="true" OnSelectedIndexChanged="dropDownList_SelectedIndexChanged" CausesValidation="true"> 
    </asp:DropDownList> 
    <asp:RequiredFieldValidator ID="rfvDropDownList" runat="server" ErrorMessage="Must select a value!" ControlToValidate="dropDownList" /> 
関連する問題