2013-02-08 18 views
3

我有一个带有Autopostback属性的下拉列表,我想,如果选择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它回复对于所有的值,为什么会出现这种行为? 您能否为我的方案提供适当的解决方案?

+0

尝试把警报在函数内部,并检查天气功能是否工作 –

+0

控制在OnWeekChange()函数达到'否则返回真打算;'一部分,但不会使回发 –

+0

当您删除会发生什么'onchange'事件。它有效吗? –

回答

3

我有类似的问题,但我解决了使用此code.it已为我工作。

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> 
+0

谢谢sharad的回应.. –

+0

它为你工作吗? ? – sharad

+0

是的,它适合我。但我认为这不是使用它的做法。它可能会从下拉菜单中正常回发中受益。 –

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; 
     }); 
    }); 
+0

我试着用this.it回传所有的值 –

+0

它创建回发两次..很奇怪.. –

相关问题