Проблемы при создании унаследованной кнопки, которая может отменить отправку (ASP.NET) - PullRequest
0 голосов
/ 10 сентября 2010

Нет ошибок с моим Javascript.Javascript возвращает false, и форма отправляется.Кроме того, при установке UseSubmitBehavior на false форма все еще отправляется.Что мне не хватает, чтобы предотвратить отправку формы?

// DerivedButton.cs
public class DerivedButton : System.Web.UI.WebControls.Button
{
  public DerivedButton2()
    : base()
  {
    this.OnClientClick = "DerivedButton_OnClick()";
    //this.UseSubmitBehavior = false;
  }

  protected override void OnPreRender(EventArgs e)
  {
    base.OnPreRender(e);
    string resourceName = "MyControls.DerivedButton.js";

    ClientScriptManager scriptManager = this.Page.ClientScript;
    scriptManager.RegisterClientScriptResource(
      typeof(MyControls.DerivedButton), 
      resourceName);
  }
}


//DerivedButton.js
function DerivedButton_OnClick()
{
  var answer = confirm("Are you sure?");
  return answer;
}

//Output Html
<input type="submit" 
       name="DerivedButton1" 
       value="SomeButton" 
       onclick="DerivedButton_OnClick();
         WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions                     
           (&quot;DerivedButton1&quot;, &quot;&quot;, false, &quot;&quot;,
            &quot;Default2.aspx&quot;, false, false))"
       id="DerivedButton1" />

1 Ответ

1 голос
/ 10 сентября 2010

Попробуйте изменить OnClientClick на что-то вроде этого:

this.OnClientClick = "if (!DerivedButton_OnClick()) return false";

Это должно сработать, хотя я подозреваю, что, возможно, есть более элегантный способ делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...