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