asp.net验证无法使用确认框

时间:2012-10-19 07:18:16

标签: c# asp.net

我想添加一个确认框。 以下代码显示了是/否确认框,但这不会处理验证。 如果我已将公司名称字段设为必填项,则即使我未输入公司名称,也会输入记录。

我在pageload事件中调用了这个方法:

CreateConfirmBox(btnAddEnquiry, "Do You Really Want to Add ?");

方法定义:

public void CreateConfirmBox(System.Web.UI.WebControls.Button btn, string strMessage)
{
    btn.Attributes.Add("OnClick", "return confirm('" + strMessage + "');");
}

aspx文件

<asp:Button ID="btnAddEnquiry" runat="server" 
     BackColor="#0000FF"
     ForeColor="LightSlateGray"
     OnClick="btnAddEnquiry_Click" 
     Text="Add Enquiry" Width="154px" />

1 个答案:

答案 0 :(得分:2)

您没有在代码中处理任何验证。

我强烈建议您使用.NET验证控件。它们很好,几乎不需要编写任何代码。

此处有更多信息; http://msdn.microsoft.com/en-us/library/bwd43d0x%28v=vs.100%29.aspx

代码示例;

<asp:TextBox ID="TextBox1" runat="server" />

<asp:RequiredFieldValidator IdD="RequiredFieldValidator2"
             ControlToValidate="TextBox1"
             Display="Static"
             Width="100%" runat="server">
             *
 </asp:RequiredFieldValidator>

  <asp:Button ID="btn_Save"
             Text="Validate" 
             OnClick="btnSave_Click" 
             runat="server" />

如果您不想实现验证器并仅使用确认框,从而保持与当前相同的功能,则可以使用按钮的OnCientClick,如果用户单击否,将停止PostBack。

  <asp:Button ID="btnAddEnquiry" runat="server" 
              BackColor="#0000FF"
              ForeColor="LightSlateGray"
              OnClick="btnAddEnquiry_Click" 
              OnClientClient="javascript: return confirm('Do You Really Want to Add ?');"
              Text="Add Enquiry" Width="154px" />