javascript - 单击 html 表格内的按钮时如何调用 javascript 函数?

标签 javascript jquery html asp.net webforms

更新安马蒂爵士 你好先生,谢谢你回答我的问题 我将此代码添加到

页面加载

string eventTarget = this.Request["__EVENTTARGET"];
        if (eventTarget == "DeleteRecord")
        {
            Label1.Text = "Method called!!!";
            // Delete your record here
        }else
        {
            Label1.Text = "No method";
        }

在页面加载(运行时)时,label1 将其文本更改为“无方法”

然后我点击了按钮,然后弹出窗口出现了。我选择了"is"按钮,但什么也没发生,甚至没有关闭弹出窗口

为了检查 javascript 是否正常工作,我更改了此代码
__doPostBack("删除记录", ''); 到 $("[id*=btnadd]").click();

单击弹出窗口的"is"按钮后,单击按钮 BTNADD

先生,我的问题是为什么要这样做 __doPostBack("DeleteRecord", '');对我不起作用吗?我什至尝试了一些在线发布的教程,但它仍然是一样的

<小时/>

这是 JavaScript 函数:

    <script type="text/javascript">
   $(function () {
       //$("[id*=btnDelete]").removeAttr("onclick");
       $("[id*=btnDelete]").removeAttr("onclick");
       $("#dialog").dialog({
           modal: true,
           autoOpen: false,
           title: "Confirmation",
           width: 350,
           height: 160,
           buttons: [
           {
               id: "Yes",
               text: "Yes",
               click: function () {
                   $("[id*=btnDelete]").attr("rel", "delete");
                   $("[id*=btnDelete]").click();
               }
           },
           {
               id: "No",
               text: "No",
               click: function () {
                   $(this).dialog('close');
               }
           }
           ]
       });
       $("[id*=btnDelete]").click(function () {
           if ($(this).attr("rel") != "delete") {
               $('#dialog').dialog('open');
               return false;
           } else {
               __doPostBack(this.name, '');
           }
       });
   });
</script>

这是背后的代码

    protected void DeleteRecord(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Record Deleted.')", true);
    }

HTML代码

<asp:Button ID="btnDelete" runat="server" Text="Delete" OnClick="DeleteRecord" UseSubmitBehavior="false" />
    <div id="dialog" style="display: none">
       Do you want to delete this record?
    </div>

效果很好

但是我如何调用html表中的函数

<tr>
   <td>
      <%# DataBinder.Eval(Container.DataItem, "signatoryid") %> 
   </td>
   <td>
      <%# DataBinder.Eval(Container.DataItem, "signatoryname") %> 
   </td>
   <td>
      <%# DataBinder.Eval(Container.DataItem, "signatoryPosition") %> 
   </td>
   <td>
      <%# DataBinder.Eval(Container.DataItem, "signatoryOffice") %> 
   </td>
   <td>
      <button type="button" class="btndelete btn btn-xs btn-danger" OnClick="DeleteRecord">
      <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>Delete
      </button>
   </td>
</tr>          

最佳答案

客户端

创建一个打开对话框的函数并在 onClick 中调用它事件:

 <button type="button" class="btndelete btn btn-xs btn-danger" OnClick="javascript:deleteRecord();">
     <span class="glyphicon glyphicon-trash" aria-hidden="true"></span>Delete
  </button>


<script>
  $(function () {
     $("#dialog").dialog({
        modal: true,
        autoOpen: false,
        title: "Confirmation",
        width: 350,
        height: 160,
        buttons: [
        {
            id: "Yes",
            text: "Yes",
            click: function () {
                 __doPostBack("DeleteRecord", '');
            }
        },
        {
            id: "No",
            text: "No",
            click: function () {
                $(this).dialog('close');
                return false;
            }
        }
        ]
     });
});

    function deleteRecord(){
        $("#dialog").dialog('open');
    }
 </script>

服务器端代码

如果做手工__doPostback()您必须检索 EventTargetEventArguments (如果有的话)在 Page_Load()Page_Init()如果您愿意,当前页面的事件处理程序:

 protected void Page_Load(object sender, EventArgs e)
    {
      string eventTarget = this.Request["__EVENTTARGET"];
      if(eventTarget == "DeleteRecord")
      {

       // Delete your record here
      }

  }

关于javascript - 单击 html 表格内的按钮时如何调用 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296987/

相关文章:

html - Bootstrap grid 3项各占33%

javascript - 自定义验证器在 Angular 2 中重置 react 形式时抛出错误

javascript - node.js 中的 console.time() 安全吗?

jquery - 如何在 jQuery Bootstrap DataTables 插件中居中分页?

jquery - 如何将 <span> 放置在 H1 和 href 标记内的第一个单词上

从 mysql 检索时 PHP 代码不工作

javascript - 为什么乒乓球会卡在底部?

javascript - 点击功能不会在每次点击时触发

javascript - 当我将 div 放在可放置区域时,如何获取输入文本值(从数据库)?

javascript - 添加一个输入字段,循环它并将值输出到 div