RadioButtonList:
<asp:RadioButtonList id="rblMatrixType" style="Z-INDEX: 101; LEFT: 88px; POSITION: absolute; TOP: 104px"
runat="server" Width="200px" AutoPostBack="True">
<asp:ListItem Value="A" Selected="True">A</asp:ListItem>
<asp:ListItem Value="B">B</asp:ListItem>
</asp:RadioButtonList>
<script>
function attachNewEvent(ctlID)
{ var ctl = document.all[ctlID];
ctl.onclick = "";
ctl.attachEvent("onclick", comfirmRBLChange); }
function comfirmRBLChange()
{ if (confirm('Change the type will result in the loss of data. Are you sure you want to proceed?')) { __doPostBack(event.srcElement.id, '');
}
else
{ document.all[rblSelectedItem].checked = "checked";
return false;
}
}
</script>
protected override void OnPreRender(EventArgs e)
{ System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script>" + System.Environment.NewLine); sb.Append(string.Format(" var rbl = /"{0}/";{1}", this.rblMatrixType.ClientID,System.Environment.NewLine));
for (int index = 0; index < this.rblMatrixType.Items.Count; index++)
{ sb.Append(string.Format(" attachNewEvent(rbl + /"_{0}/");{1}",index.ToString(),System.Environment.NewLine)); if (this.rblMatrixType.Items[index].Selected)
{ sb.Append(string.Format(" var rblSelectedItem = /"{0}_{1}/";{2}",this.rblMatrixType.ClientID,index.ToString(),System.Environment.NewLine)); }
}
sb.Append("</script>" + System.Environment.NewLine);
if (!this.Page.IsStartupScriptRegistered("RadioButtonListChangeConfirm")) { this.Page.RegisterStartupScript("RadioButtonListChangeConfirm", sb.ToString()); }
base.OnPreRender (e);
}
DropDownList
<asp:DropDownList id="DropDownList1" style="Z-INDEX: 102; LEFT: 280px; POSITION: absolute; TOP: 280px"
runat="server" Width="88px" AutoPostBack="True">
<asp:ListItem Selected="True"></asp:ListItem>
<asp:ListItem Value="A">A</asp:ListItem>
<asp:ListItem Value="B">B</asp:ListItem>
<asp:ListItem Value="C">C</asp:ListItem>
</asp:DropDownList>
<script>
var ddlCtlID = "<%=this.DropDownList1.ClientID%>";
function confirmChangeSelectItem(ctl,message)
{ if (ctl[ctl.oldIndex].innerText == "")
{ return true;
}
if (!confirm(message))
{ ctl.selectedIndex = ctl.oldIndex;
return false;
}
else
{ return true;
}
}
</script>
protected override void OnPreRender(EventArgs e)
{ this.DropDownList1.Attributes.Add("oldIndex", this.DropDownList1.SelectedIndex.ToString()); this.DropDownList1.Attributes.Add("onchange","if (!confirmChangeSelectItem(this,'Change the size category combination will result in the loss of color prepack data. Are you sure you want to proceed?')) return;");
base.OnPreRender (e);
}