ButtonField确认点击不起作用

时间:2015-04-09 15:21:43

标签: javascript c# jquery asp.net

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

我的代码在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>

buttonField:

  <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
         }
}

2 个答案:

答案 0 :(得分:0)

您不能拥有同时包含<script>和内容的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而不是<input type="button" class="alterarStatus" >

你可以在你生成的html中看到你正在获得onclick=__doPostBack()的输入,这会导致javascript被解雇,因为它正在回发。

  

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

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

答案 1 :(得分:0)

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

它应该是这样的: -

&#13;
&#13;
<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>
&#13;
<columns>
            <asp:ButtonField ControlStyle-CssClass="alterarStatus" Text="Status" CommandName="atender" ButtonType="Button"/>
      </columns>
</GridView>
&#13;
&#13;
&#13;

希望有所帮助