I was also facing the problem of duplicate records getting saved when user double clicks on save button. So I tried the below approach. Here the JavaScript function "HideButton()" hides the save button when its clicked there by not allowing the user to click on it again. The button reappears after the page refreshes.
<asp:ImageButton ID="btnSaveNotes" runat="server" OnClick="btnSaveNotes_Click" OnClientClick="HideButton()" />
<script language="javascript">
function HideButton()
{
var SaveNotes = document.getElementById('<%=btnSaveNotes.ClientID %>');
SaveNotes.style.display = 'none';
}
</script>