我有一个类似于这样的Web表单应用程序。
public partial class MyPage : Page
{
private static bool _changed = false;
protected void btnSave_Click(object sender, EventArgs e)
{
if(_changed)
{
//some code here
}
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect("~/MyPage.aspx");
}
protected void dropdownlist_SelectedIndexChanged(object sender, EventArgs e)
{
_changed = true;
}
}
我试图做的事情是,有一个表单,其中包含一个下拉列表和一个保存按钮。如果用户更改下拉列表中的选项,我会将私有布尔值 changed
设置为 true。默认情况下,它为 false。
出于我不理解的某种原因,在到达 btnSave_click
方法时,changed
为 true,尽管它从未访问过 dropdownlist_selectedIndexChanged
方法,这是我代码中唯一将 changed
设置为 true 的地方。
标记:
<asp:DropDownList ID="myDropDown" runat=server" OnSelectedIndexChanged="dropdownlist_SelectedIndexChanged" AutoPostBack="true">
<asp:ListItem Value="True">Yes</asp:ListItem>
<asp:ListItem Value="False">No</asp:ListItem>
<asp:Button ID="btnSave" Text="Save" OnClick="btnSave_Click" runat="server" />