【问题标题】:How to call a javascript function when a button inside html table is clicked?单击html表中的按钮时如何调用javascript函数?
【发布时间】:2015-10-23 07:29:20
【问题描述】:

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

页面加载

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

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

然后我点击按钮然后弹出窗口进入。我选择了是按钮但没有发生任何事情它甚至没有关闭弹出窗口

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

点击弹出的是按钮后,它点击了按钮 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 table 中调用函数

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

【问题讨论】:

标签: javascript jquery html asp.net webforms


【解决方案1】:

客户端

创建一个打开对话框并在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(),你必须在Page_Load()Page_Init()上检索EventTargetEventArguments(如果你愿意的话),当前页面的事件处理程序:

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

       // Delete your record here
      }

  }

【讨论】:

  • 谢谢它的工作,但我不明白你发布的服务器端代码你能给我一个示例代码先生,当点击是按钮时调用代码隐藏函数。谢谢
  • __doPostBack("DeleteRecord", ''); 应该点击Page_Load() 事件处理程序。
  • 您能解释一下吗?编码。我真的不明白。或者你能给我一个关键字来搜索我阅读吗?更好地理解代码?谢谢
  • 看看herehere还有here
  • 你好先生@anmarti 我更新了我上面的问题希望你能帮助我。我的问题在这个框中还不够,我把它放在上面谢谢你
猜你喜欢
  • 2012-08-11
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
相关资源
最近更新 更多