通过HTTP Post发送表复选框值数组

时间:2012-07-31 09:42:04

标签: c# asp.net forms http-post

我有这个表,我用它来创建动态复选框(记录的数量可能/会有所不同)的想法是我可以在任何表格行上选择一个复选框并“发送”这些记录。

我想将一个ID数组发送到另一个页面进行处理 - 但我很困难!

这是我的表格/表格代码

<form action="processingpage.aspx" method="post">
  <asp:Repeater ID="GroupList" runat="server">
    <HeaderTemplate>
       <table id="grouptable" class="table"> 
         <thead>
            <tr>
              <th>Broadcast</th>
              <th>ID</th>
              <th>Name</th>
              <th>Last Modified</th>
              <th>Actions</th>
            </tr>
        </thead>
      <tbody>
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
          <td>
            <input type="checkbox" name="BroadcastSelect[]" value="<%# Eval("Group_ID") %>"</input></td>
          <td><%# Eval("Group_ID") %></td>
          <td><%# Eval("DESC") %></td>
          <td><label id="test">hello</label></td>
          <td><a class="btn btn-info" href="<%# Eval("gURL") %>">Edit</a>/td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
         </tbody>
       </table>
    </FooterTemplate>
  </asp:Repeater>
  <input class="btn primary" type="submit" value="Broadcast"/>
</form>

我认为这是通过Request.in

将数组发送好

BroadcastSelect[]TESTGROUP(这是我发送的项目之一)

但是在我的接收页面上,除了我尝试的空白文本外,我什么都没有。

Label1.Text = Page.Request.Form["BroadcastSelect[0]"];

Label1.Text = Page.Request.QueryString["BroadcastSelect[0]"];

但不打印任何值。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

我认为问题在于无法将<input name="BroadcastSelect[]">索引到Request.FormRequest.QueryString

如果您在代码中断点,您将看到Request.Form对象将Request.Form["BroadcastSelect[]"]作为可用项之一,它将返回CSV值列表。

所以请尝试使用它......

string broadcastSelect = Request.Form["BroadcastSelect[]"];
if (broadcastSelect != null)
{
   string[] broadcastSelectParts = broadcastSelect.Split(',');
   Label1.Text = broadcastSelectParts[0];
}

显然,块中的代码也可以归结为一行,但如果你想要的不是第一项,请检查你是否选择了“越界”索引......

Label1.Text = broadcastSelect.Split(',')[0];