テキストボックスに入力されたデータが正しい場所であるかどうかをチェックするカスタム検証を記述したユーザーコントロールがあります。ボタンをクリックすると、(page.IsValid)ビットをチェックしました
検証が失敗した場合でも、ユーザーコントロールが追加されたページ全体をリロードします
カスタム検証は次のようになります。
<asp:CustomValidator id="CustomValidator1" runat="server" Width="102px" Style="margin-left:37px !important" OnServerValidate="TextValidate" ControlToValidate="txtLocationId" ErrorMessage="Incorrect Location.">
</asp:CustomValidator>
UserControl.aspx.cs :->
protected void TextValidate(object source, ServerValidateEventArgs args)
{
string value = string.Empty;
dbconfig.conDatabase2.Open();
SqlCommand cmdsqlcmd = new SqlCommand();
cmdsqlcmd.CommandType = CommandType.Text;
string locID = args.Value.ToString();
cmdsqlcmd.CommandText = "";
cmdsqlcmd.Connection = dbconfig.conDatabase2;
Object ob = cmdsqlcmd.ExecuteScalar();
if (ob == null)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
ボタンクリック時:
protected void goButton_OnClick(object sender, EventArgs e) { if (Page.IsValid) { コードはここに... } }
aspx ページ:
<%@ Register Src="UserControl/UserControlFilter.ascx" TagName="UserControlFilter"
TagPrefix="uc1" %>
<html>
<body>
<form id="form1" runat="server">
<AjaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</AjaxToolkit:ToolkitScriptManager>
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick" Interval="300000">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
<ContentTemplate>
<div class="locadetail" id="bigtrends" style="border-radius:5px;width: 884px; z-index: 100; border-width: 1px;
margin: 10px; height: 398px !important; float: left; background-color: #fff !important;">
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
どこか間違っている場合はお知らせください
ありがとう