プレビューと保存の2つのボタンがあります。プレビューボタンの助けを借りて、ユーザーはフォーマットに基づいてデータを表示し、保存することができます。
ただし、プレビューをクリックすると、ajaxcontrol(カレンダー)に接続されている1つのテキストボックスが空になり、ユーザーは保存する前に日付を入力する必要があります。これをどのように処理しますか?プレビューをクリックすると、詳細が表示され、データがレイアウトで表示されます。
<asp:TextBox ID="txtDate" ReadOnly="true" runat="server"></asp:TextBox>
<div style="float: right;">
<asp:ImageButton ID="imgcalender1" runat="server" ImageUrl="~/images/calendar.png"
ImageAlign="Bottom" />
<asp:CalendarExtender ID="ajCal" TargetControlID="txtpublishDate" PopupButtonID="imgcalender1"
runat="server">
</asp:CalendarExtender>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" ValidationGroup="group1" runat="server" ControlToValidate="txtDate"
ForeColor="Red" Font-Bold="true" ErrorMessage="*"></asp:RequiredFieldValidator>
</div>
<asp:Button ID="btnPreview" runat="server" Text="Preview" OnClick="btnPreview_Click" />
<asp:Button ID="btnsubmit" runat="server" ValidationGroup="group1" Text="Save" OnClick="btnsubmit_Click" />
私が理解していることから、プレビューボタンがポストバックを引き起こしていて、それを望まない場合は、プレビューボタンでこれを試してください。
<asp:button runat="server".... OnClientClick="return false;" />
同様にこれも機能します:
YourButton.Attributes.Add("onclick", return false");
編集:
ユーザーの質問に対する答えは、プレビューボタンのHTMLマークアップの単純な変更だったようです。
CausesValidation="False"
Aspxコード(サーバー側)でPage.IsPostback()を使用します。このような:
private void Page_Load()
{
if (!IsPostBack)
{
// the code that only needs to run once goes here
}
}
このコードは、ページが読み込まれたときにのみfirstを実行し、ユーザーが入力したフォームへの変更を踏まないようにします。
上記の「CausesValidation = "False"」と同じ問題と解決策があり、「UseSubmitBehavior = "False"」DID動作しません-それでも「Page_Load」メソッドと呼ばれます)を追加しました。
私にとってうまくいったのは、Page_Loadメソッドに次の行を前もって追加することでした。
if (IsPostBack) return;
それが誰かを助けるなら私はこれに言及しています(私は上記にコメントするつもりでしたが、私は新しいユーザーであるため、StackOverflowはコメントを許可しませんでした-したがって新しい返信です)。
あなたはあなたのコードを入れることができます
Page_Init()
{
//put your code here
}
の代わりに
Page_Load()
{
//code
}
これをaspxページのボタンプロパティに追加してみてください。
OnClientClick="return false;"