Why not use radio buttons? You are trying to recreate the functionality of controls that already exist. You can skin them to look like check boxes if you like, but most users know what radio buttons do and how they are meant to behave.
Try the following. It will recreate the behaviour that you described in your comments. If you need to do this for multiple groups, this will require a currentSelection variable defined for each group and a different class for each group, but there is probably a clever way around this. I'll leave that to you to experiment with. Perhaps wrap it in a control as you have done already and generate the var and the document.ready function for each contriol. Only add the jquery-1.4.1.js reference once though.
<script type="text/javascript" src="/js/jquery-1.4.1.min.js"></script>
<script type="text/javascript" language="javascript">
var currentSelection;
$(document).ready(function() {
$(".radio").click(function() {
if (currentSelection == this.id) {
this.checked = false;
}
else {
currentSelection = this.id;
}
});
});
</script>
<asp:RadioButton id="rb" runat="server" />
<asp:RadioButton id="rb1" runat="server" />
CodeBehind:
rb.InputAttributes.Add("class", "radio");
rb1.InputAttributes.Add("class", "radio");