今天在做网站时,用户提出了一个需求:弹出选择对话框,确认用户是否继续操作。
接触过.net的程序员都知道,.net没有现成的选择对话框实现,对于这点一直感觉MS好坑爹,还好有强大的javascript。
下面贴上自己实现的代码:
confirm会弹出YesOrNo对话框,当用户选择Yes时,触发按钮点击事件,否则无操作。
function CheckYesOrNo() {
if (confirm("这张投保单可能是往年的单子,确定要处理?")) {
document.getElementById("<%=this.btnBindCustomerInfo.ClientID%>").click();
return true;
}
else
return false;
}
定义隐藏按钮和点击事件。需要注意的是这段代码的放置位置,一开始我将这段代码放在控件asp:Panel里面,结果上面的代码老是找不到按钮对象,也就无法响应按钮事件。
<div style="display:none">
<asp:Button ID="btnBindCustomerInfo" runat="server" OnClick="BindCustomerInfo" visibility="hidden" width="0" />
</div>
下面是触发对话框的事件代码:
DateTime signdate = DateTime.Parse(gvwSheetInfo.SelectedRow.Cells[2].Text.Trim());
if (DateTime.Compare(signdate.AddYears(1), DateTime.Now) <= 0) //签单日期比当前时间小1年,说明是以前的单子
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "", "CheckYesOrNo()", true);
}
接下来是按钮的事件定义,注意是protected方法,不小心改成private,页面直接崩了:
protected void BindCustomerInfo(object sender, EventArgs e) {
string ...... }