【问题标题】:Call C# codebehind while still running JS using dataTable jquery在仍然使用 dataTable jquery 运行 JS 的同时调用 C# 代码隐藏
【发布时间】:2016-06-03 15:58:49
【问题描述】:

所以我正在使用数据表,我试图能够处理仅添加哪些工作的代码,并且仍然使用不能一起工作的数据表。这两个冲突,所以当我单独拥有它们时它可以工作。

$(function() {
  var table = $('#example').DataTable();
  $('#btnAddToTable').on('click', function(e) {
    var counter = 1;

    var textBox1 = $("#a").val();
    var textBox2 = $("#b").val();
    var textBox3 = $("#c").val();

    table.row.add([
      textBox1,
      textBox2,
      textBox3,
    ]).draw(false);
    counter++;
    e.preventDefault();
  });
});
<asp:TextBox runat="server" ID="a" AutoPostBack="true" ClientIDMode="Static" />
<asp:TextBox runat="server" ID="b" AutoPostBack="true" ClientIDMode="Static" />
<asp:TextBox runat="server" ID="c" AutoPostBack="true" ClientIDMode="Static" ReadOnly="true" />

<asp:Button Text="Add To Table" ID="btnAddToTable" OnClick="btnAddToTable_Click" ClientIDMode="Static" runat="server" />

<table style="max-width: 50%" class="display" id="example">
  <thead>

    <tr>
      <th>a</th>
      <th>b</th>
      <th>c</th>

    </tr>
  </thead>
</table>

【问题讨论】:

    标签: javascript c# jquery math datatable


    【解决方案1】:

    我需要有关您遇到的问题的更多详细信息,但从示例的外观来看,这是我可以看到的。

    您在 Asp 按钮上有和 OnClick。这将导致回发,$('#btnAddToTable').on('click', function(e) { ... } 函数所做的任何更改都将被删除。

    我不确定你到底想完成什么,但如果你想阻止回发,则在 javascript 函数中返回 false;

    更新

    尝试将OnClientClick="return addThirdTextBoxBeforePostback();" 添加到按钮。然后将点击时的 jquery 更改为一个名为 addThirdTextBoxBeforePostback 的函数,并在函数中返回 true。

    <asp:TextBox runat="server" ID="a" AutoPostBack="true" ClientIDMode="Static" />
    <asp:TextBox runat="server" ID="b" AutoPostBack="true" ClientIDMode="Static" />
    <asp:TextBox runat="server" ID="c" AutoPostBack="true" ClientIDMode="Static" ReadOnly="true" />
    
    <asp:Button Text="Add To Table" ID="btnAddToTable" OnClientClick ="return addThirdTextBoxBeforePostback();" OnClick="btnAddToTable_Click" ClientIDMode="Static" runat="server" />
    
    <table style="max-width: 50%" class="display" id="example">
      <thead>
    
        <tr>
          <th>a</th>
          <th>b</th>
          <th>c</th>
    
        </tr>
      </thead>
    </table>
    

    Javascript

    function addThirdTextBoxBeforePostback() {
        var table = $('#example').DataTable();
        var counter = 1;
    
        var textBox1 = $("#a").val();
        var textBox2 = $("#b").val();
        var textBox3 = $("#c").val();
    
        table.row.add([
          textBox1,
          textBox2,
          textBox3,
        ]).draw(false);
        counter++;
        return true;
    };
    

    *免责声明 - 我没有对此进行测试,并且在存在 OnClick 时 OnClientClick 可能无法正常工作。我只是不记得了

    【讨论】:

    • 我正在尝试 dataTable 仍然可以工作和计算,同时还将第三个文本框的答案放入 dataTable 中
    • 尝试将OnClientClick="return addThirdTextBoxBeforePostback();" 添加到按钮。然后将点击时的 jquery 更改为一个名为 addThirdTextBoxBeforePostback 的函数,并在函数中返回 true。
    • 你认为你可以给我举个例子吗?我只有 2 个月的经验,所以我还在学习。
    • 当我运行它时。我没有问题,但计算不是通过我粘贴在我后面的代码中运行的,
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2011-02-26
    • 2013-08-16
    相关资源
    最近更新 更多