如果在下拉列表中选择了特定值,则阻止回发

时间:2013-02-08 04:41:05

标签: asp.net updatepanel html-select

我有一个下拉,Autopostback属性为true,我想,如果选择Select Week选项,那么它不应该回发,否则它应该回发。以下是功能。

JAVASCRIPT

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 时,它回发以获取所有值,为什么会出现这种行为 能否为我的方案提供合适的解决方案。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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;
        });
    });