单击按钮,将值从HTML表传输回代码隐藏

Transfer values from HTML Table back to Codebehind on button click

本文关键字:传输 代码 隐藏 HTML 按钮 单击      更新时间:2023-09-26

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

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

chkboxID1,otherfield1,chkboxID 2,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

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和旁边字段的值。

如果是,请将复选框和要获取值的其他字段设置为runat="server",然后当用户单击按钮时,浏览所有复选框,如果选中了复选框,则获取所需字段中的值:

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

注意:我不认为你可以使用一个数字作为ID,但你可以将它存储在name字段中,或者可能给它一个像checkbox|357701一样的ID,然后在你确定是否选中后分割ID