【问题标题】:Transfer values from HTML Table back to Codebehind on button click单击按钮时将值从 HTML 表传输回 Codebehind
【发布时间】:2016-03-29 17:57:54
【问题描述】:

我有一个带有表格的 ASP.NET (4.5) 页面,表格的每一行都有几个字段和一个复选框,我已经有一个 java 函数来确定选中哪些复选框并返回该信息返回 vb.net 代码以通过隐藏字段进行处理。我现在需要能够将表​​中另一个字段的值与选中的复选框 ID 一起发送回来,我不知道如何。

所以我正在寻找我的隐藏字段最终看起来像:

chkboxID1,otherfield1,chkboxID2,otherfield2,..等

我当前的代码是:

<script>
function test() {
    var idSelector = function () { return this.id; };
    var bChecked = $(":checkbox:checked").map(idSelector).get();
    document.getElementById('<%=shortlists.ClientID%>').value = bChecked;
}
</script>

<input id="clickMe" type="submit" value="Shortlist" onclick="test();" />
<asp:HiddenField ID="shortlists" runat="server" />

我要从中提取数据的表是:

<table id="shortlist" class="compact" style="text-align: center;">
<thead style="text-align: center">
    <tr>
   <th colspan="3" style="text-align: center">Details</th>
   <th colspan="4" style="text-align: center">Stats</th>
       <th colspan="3" style="text-align: center">Overall</th>
    </tr>
    <tr>
        <th style="text-align: center">Date/Time</th>
        <th style="text-align: center">League</th>
        <th style="text-align: center">Fixture</th>
        <th style="text-align: center">P</th>
        <th style="text-align: center">ALL</th>
        <th style="text-align: center">L2</th>
        <th style="text-align: center">LP +-2</th>
        <th style="text-align: center">Avg FHG</th>
        <th style="text-align: center">Rating</th>
        <th style="text-align: center">Checkbox</th>
    </tr>
</thead>
<tbody>
    <tr>
   <td>23/12/2015 19:30:00</td>
   <td>Serie B</td>
   <td>Pescara v Modena</td>
   <td>18</td>
   <td>44.44</td>
   <td>25</td>
   <td>33.33</td>
   <td>2.56</td>
   <td>34</td>
   <td><input id=357701 type="checkbox" />
</td>
</tr>
<tr>
   <td>23/12/2015 19:30:00</td>
   <td>Serie B</td>
   <td>Pro Vercelli v Perugia</td>
   <td>19</td>
   <td>31.58</td>
   <td>50</td>
   <td>25</td>
   <td>1.84</td>
   <td>36</td>
   <td><input id=357702 type="checkbox" /></td>
</tr>
</tbody>
</table>

我想获取所选复选框的 ID 和“评级”列的值,所以从这个例子中(假设两个复选框都打勾)我希望我的隐藏字段读取:

357701,34,35702,36

【问题讨论】:

标签: javascript jquery asp.net


【解决方案1】:

在OnClientClick 中添加asp:Button 调用您的javascript function,在OnClick 函数中调用您的code behind function。

它将首先调用您的javascript 函数,然后调用您的code behind 函数。

<script>
function test() {
var idSelector = function () { return this.id; };
var bChecked = $(":checkbox:checked").map(idSelector).get();
//To store multiple values
bChecked = bChecked + ",AnotherFeild";
document.getElementById('<%=shortlists.ClientID%>').value = bChecked;
}
</script>

<asp:Button ID="btntest" runat="server" OnClientClick="test()" OnClick="btntest_Click" />
<asp:HiddenField ID="shortlists" runat="server" />

代码背后

protected void btntest_Click(object sender, EventArgs e)
{
  string val = shortlists.Value;
}

【讨论】:

  • 嗨,谢谢,但我已经知道该怎么做,我的问题是如何从表中收集另一个值以及复选框 ID?
  • 另一个是什么意思?只需将其存储在另一个 hiddenfeild 中即可。
  • 或者,如果您想将一行的所有值存储在一个 hiddenfeild 中,而不是创建一个变量并将值存储在其中并将 hiddenfeild 分配给该变量。
  • 我试过了,但最后得到的是 chkboxID1、chkboxID2、FieldHeading。我认为这实际上是不可能的,因为没有办法引用该字段并将其与 checkboxID 相关联。
  • 请发布您想要其他值的代码。
【解决方案2】:

如果我正确理解你的问题,你想知道复选框是否被选中,如果是,获取它的 id,以及它旁边的字段的值。

如果是这样,请将复选框和要从中获取值的其他字段设置为runat="server",然后当用户单击按钮时,遍历所有复选框,如果选中,则获取保存的值你想要的字段:

if (CheckBox1.Checked == true)
{
//Get the value from the cell you want
}

注意:我认为您不能使用数字作为 ID,但您可以将其存储在 name 字段中,或者可能给它一个 ID,如 checkbox|357701,然后在您完成后拆分该 ID如果被选中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多