title: How to tell if the user changed the dropdownlist
body: <p>I have a <code>DropDownList</code> and my method to populate it works as follows:</p>
  
  <pre><code>ddlStaff.Items.Clear();
  ddlStaff.Items.AddRange(staff.Select(x =&gt; new ListItem(x.Name, x.Id.ToString())
    { Selected = (x == DefaultStaff) }).ToArray());
  </code></pre>
  
  <p>ddlStaff is in an <code>UpdatePanel</code>, and there's another <code>DropDownList</code> whose <code>SelectedIndexChanged</code> is an AsyncPostBackTrigger for the <code>UpdatePanel</code>. The event changes the scope, repopulates the <code>staff</code> List, then runs the above again.</p>
  
  <p>Everything's working fine as is, but what I'd like to do is know if the user has changed ddlStaff so that I can basically do something like <code>{ Selected = (x == (UserSelectedStaff ?? DefaultStaff)) }</code>. Is there a built in way to do this? Or do I just need to remember what the last selected staff I sent out was (in the session or viewstate) and then compare it the actual selected staff when it comes back?</p>
  
  <p><strong>Edit to clarify</strong>: My intention is that I can send ddlStaff out populated with staff, and with the default staffmember already selected. If the user selects a staffmember, and then changes the higher-level scope dropdown, I'd like for the postback to not overwrite the user-chosen staffmember (unless of course that staffmember doesn't exist within the new scope). If the user hasn't changed the staffmember, however, I should overwrite it with the default for the new scope.</p>