【问题标题】:ButtonField confirmation click doesn't workButtonField 确认点击不起作用
【发布时间】:2015-06-15 01:28:13
【问题描述】:

我试图在拍摄动作之前显示一个确认框。

aspx 文件中有我的代码:

JavaScript

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
        $(".alterarStatus").click(function () {
            return confirm('Tem certeza que deseja alterar o status?');
        });
      </script>

按钮字段:

  <Columns>
            <asp:ButtonField ControlStyle-CssClass="alterarStatus" Text="Status" CommandName="atender" ButtonType="Button"/>
      </Columns>
    </asp:GridView>

但确认框永远不会出现

有生成的 HTML

http://pastebin.com/1vwReChK

编辑:

正在拍摄且之前没有出现提示的功能

 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string commandname = e.CommandName;

            if (commandname.Equals("atender"))
            {
//I want to show an alert before execute this action
         }
}

【问题讨论】:

  • 你能发布生成的 HTML 吗?
  • @dfsq 是的,我可以...请看我的编辑

标签: javascript c# jquery asp.net


【解决方案1】:

您的代码的主要问题是,您正在调用您的 javascript 代码并且 plugin 在一个错误的脚本中。

应该是这样的:-

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

 <script type="text/javascript">
    $(function () { 
        $(".alterarStatus").click(function () {
            alert('Tem certeza que deseja alterar o status?');
        });
    });
</script>
<columns>
            <asp:ButtonField ControlStyle-CssClass="alterarStatus" Text="Status" CommandName="atender" ButtonType="Button"/>
      </columns>
</GridView>

希望对你有帮助

【讨论】:

  • 请参阅我的编辑,了解有关该问题的更多详细信息。我已经尝试过了,但警报从未出现
  • 它工作...作为@DleH 的答案。警报显示,但取消按钮不会取消操作
【解决方案2】:

您不能同时拥有&lt;script&gt; 标记和src 和内容,创建两个脚本标记,它应该可以工作。也可以尝试将其包装在 document ready:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script type="text/javascript">
    $(function() {  //equivalient of $(document).ready(function() {
        $(".alterarStatus").click(function () {
            return confirm('Tem certeza que deseja alterar o status?');
        });
    });
</script>

来源:https://stackoverflow.com/a/29414108/526704

我认为ButtonField 正在使用runat="server" 创建按钮,因此当您按下它们时它会回发。尝试将其创建为 TemplateField 并改为使用 &lt;input type="button" class="alterarStatus" &gt;

您可以在生成的 html 中看到您正在使用 onclick=__doPostBack()s 获取输入,这会阻止 javascript 触发,因为它正在回发。

&lt;input type="button" value="Status" onclick="javascript:__doPostBack(&amp;#39;GridView1&amp;#39;,&amp;#39;atender$4&amp;#39;)" class="alterarStatus" /&gt;

<asp:TemplateColumn>
   <ItemTemplate>
      <input type="button" class="alterarStatus" value="Alterar Status" />
   </ItemTemplate>
<asp:TemplateColumn>

【讨论】:

  • 我编辑了我的问题,详细了解了我需要在此之前确认的功能...
  • 抱歉,它可以工作...我没有看到它在就绪功能中。出现警报,但取消按钮不会取消操作
  • 我确实标记为已读,我将用这个“详细信息”创建另一个问题
猜你喜欢
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多