2016-10-30 1 views
2

私は検索と他のフィルタで簡単なwebformを持っています。asp.net webformの最初の値のDropDownのポストバックを防止します

ユーザーが検索ボタンをクリックすると検索が開始され、フィルタはドロップダウンの変更に基づいてトリガーされます。 BEHIND

CODE

<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12"> 
    <asp:TextBox ID="txtSearch" runat="server" placeholder="SEARCH" CssClass="form-control search-text"></asp:TextBox> 
    <asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="btn search-btn" /> 
    </div> 


<div class="col-xs-12 col-sm-12 col-md-4 col-lg-4 "> 
<asp:DropDownList ID="ddCategory" CssClass="form-control" AutoPostBack="true" OnSelectedIndexChanged="ddCategory_SelectedIndexChanged" runat="server" DataTextField="Name" DataValueField="ID" > 
</asp:DropDownList> 
<asp:RequiredFieldValidator id="rfvdd" runat="server" ErrorMessage="" ControlToValidate="ddCategory" InitialValue="0" ValidationGroup="ddCategory"> 
</asp:RequiredFieldValidator> 
</div> 

CODE

String strSql = "SELECT ID, Name FROM Category ORDER BY Name ASC"; 
DataSet ds = new DataSet(); 
ds = DataProvider.Connect_Select(strSql); 
ddCategory.DataSource = ds; 
ddCategory.DataBind(); 
ddCategory.Items.Insert(0, new ListItem("CATEGORY", "0")); 

私はddCategoryでカテゴリーに0の値としてコードを使用すると、私はユーザーがオプションとしてカテゴリーを選択したときにポストバックをトリガーにしたいいけませんddCategoryをプルダウンします。それは私はあなたが確認するために、JavaScript関数が必要なポストバック

答えて

1

を回避することができますどのように値0

とドロップダウンCategoryの最初の値がある場合、私は価値のポストバックを選択しても現時点では

がイベントを発生しましたユーザーが「カテゴリ」項目を選択したときにポストバックは発生しません。これは次のようになります。

function onCategoryChange() { 
    var value = $("#<%= ddCategory.ClientID %> option:selected").val(); // use the ClientID from the ddCategory dropdown 
    if (value == "0") // this is the value for the "Category" entry 
    return false; 
    else { 
    __doPostBack('<%= ddCategory.ClientID %>', value); 
    } 
} 

あなたはまた、JavaScript関数が呼び出されるように、あなたのDropDownListを採用する必要があります。私は、カテゴリ]ドロップダウンフィールドで選択したオプションを選択するためのjQueryを使用したこと

<asp:DropDownList ID="ddCategory" 
        CssClass="form-control" 
        AutoPostBack="true" 
        OnSelectedIndexChanged="ddCategory_SelectedIndexChanged" 
        runat="server" 
        DataTextField="Name" 
        DataValueField="ID" 
        onchange="return onCategoryChange();"> 
</asp:DropDownList> 

P.S。:注:したがって、あなたは、このようなonchange属性を追加します。 jQueryを使用できない場合、プレーンJavaScriptを使用するには、選択したオプション選択を採用する必要があります。

+0

ありがとうございましたJSアプローチが動作します。必要なフィールドバリデーターが機能しない理由が、送信ボタンに関連付けられている場合に機能するかどうかは不明です。とにかくありがとう、私はこれ以上の時間を費やすことはできませんJavaScriptのアプローチを使用します。 – Learning

関連する問題