3

Autopostback プロパティが true のドロップダウンがありますSelect Week。オプションを選択した場合、ポストバックしないでください。それ以外の場合は、ポストバックする必要があります。以下、機能です。

ジャバスクリプト

function OnWeekChange() {
        var value = $("#DropDownListWeeks option:selected").val();
        if (value == "-1")
         return false; 
        else return true;
    }

ASPX

 <asp:DropDownList ID="DropDownListWeeks" runat="server" Height="23px" Width="252px"
                    OnSelectedIndexChanged="DropDownListWeeks_SelectedIndexChanged" AutoPostBack="true" ClientIDMode="Static"
                    AppendDataBoundItems="true"  onchange="return OnWeekChange();"> 
                </asp:DropDownList>

.CS

 weeks = client.GetWeeks(true);
        foreach (Roaster_Week week in weeks)
        {
            //Add weeks in the dropdowns with formatting 
            DropDownListWeeks.Items.Add(new ListItem(string.Format("{0:MMM d, yyyy}", week.StartDate) + " - " + string.Format("{0:MMM d, yyyy}", week.EndDate),week.WeekID.ToString()));
        }
        client.Close();
        DropDownListWeeks.Items.Insert(0, new ListItem("Select Week","-1"));

ここで、私の場合、以外の値を選択してもポストバックはまったく発生しません。すべての値に対してポストバック-1を試してみると、なぜそのような動作が発生するのですか? 私のシナリオに適した解決策を教えてください。Jquery

4

2 に答える 2

3

私は同様の問題を抱えていましたが、このコードを使用して解決しました。

function OnWeekChange() {
            var value = $("#DropDownListWeeks option:selected").val();
            if (value == "-1")
             return false; 
            else {
             __doPostBack(value , '');
            }
         }




<asp:DropDownList ID="DropDownListWeeks" runat="server" Height="23px" Width="252px"
                        OnSelectedIndexChanged="DropDownListWeeks_SelectedIndexChanged" AutoPostBack="true" ClientIDMode="Static"
                        AppendDataBoundItems="true"  onchange="return OnWeekChange();"> 
                    </asp:DropDownList>
于 2013-02-08T06:36:42.113 に答える
0

その下の関数を削除onchange="return OnWeekChange();"して追加すると、機能します。

 $(document).ready(function () {
        $("#DropDownListWeeks").change(function () {
            var value = $("#DropDownListWeeks option:selected").val();
            alert(value);
            if (value == "-1")
                return false;
            else
                return true;
        });
    });
于 2013-02-08T05:20:49.133 に答える