2

ユーザーがいくつかの値を入力する必要があるフォームが 1 つあります。[送信] ボタンをクリックした後、javascript 関数を呼び出して戻り値を確認する必要があります。戻り値が true の場合は、フォームをポストバックする必要があります。devexpressボタンでそれを達成する方法は?

私が置くとき

saveSett.UseSubmitBehavior = true;

ボタン設定で、コントローラーアクションの最初の行にブレークポイントを配置します。そこには行かないことがわかります。

これが私の見解です:

@model Models.Request

@using ( Html.BeginForm( "Save", "Request", FormMethod.Post ))
{
    @Html.DevExpress().PopupControl(
    settings =>
    {
        settings.Name = "newRequest";
        settings.CallbackRouteValues = new { Controller = "Request", Action = "GetRequestForm" };
        settings.EnableClientSideAPI = true;
        settings.Width = 450;
        settings.ShowHeader = true;
        settings.ShowShadow = true;
        settings.PopupAnimationType = AnimationType.Fade;
        settings.AllowDragging = true;
        settings.Modal = true;
        settings.SetContent( () =>
        {
            ViewContext.Writer.Write( "<div id = 'products'>" );
            foreach(var product in Model.Products)
            {
                Html.RenderPartial( "ProductPartial", product );
            }
            ViewContext.Writer.Write( "</div>" );

            //Total days field
            @Html.DevExpress().SpinEdit(
                            cSettings =>
                            {
                                cSettings.Name = "numberOfProducts";
                                cSettings.Properties.EnableClientSideAPI = true;
                                cSettings.Width = 125;
                                cSettings.Properties.MinValue = 0;
                                cSettings.Properties.MaxValue = 100;
                                cSettings.ControlStyle.BackColor = System.Drawing.Color.FromArgb( 82, 82, 82 );
                                cSettings.ControlStyle.ForeColor = System.Drawing.Color.White;
                            } ).Bind( Model.NumberOfProducts ).GetHtml();

            //POST BACK
            @Html.DevExpress().Button( saveSett =>
            {
                saveSett.Name = "Save";
                saveSett.Text = "Save";
                saveSett.Width = 40;
                saveSett.Height = 25;
                saveSett.ControlStyle.CssClass = "button";
                saveSett.Styles.EnableDefaultAppearance = false;
                saveSett.EnableClientSideAPI = true;
                saveSett.UseSubmitBehavior = true;
                //saveSett.ClientSideEvents.Click = "function(s, e) { if(CheckValidation(s, e)) {} }";
            } ).GetHtml();
        } );    
    } ).GetHtml()
}

そして私のコントローラのアクション:

public ActionResult GetRequestForm( )
{
    //...
}
[HttpPost]
public ActionResult Save( Request request )
{
    //...
}
4

0 に答える 0