0

動的チェックボックスを作成するこのテーブルがあります(レコードの数は異なる場合があります)。アイデアは、テーブルの行にあるチェックボックスを選択して、それらのレコードを「送信」できるということです。

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 (これは私が送ったアイテムの1つです)

しかし、受信ページには、試した空白のテキストしか表示されません。

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

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

ただし、値は出力されません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

<input name="BroadcastSelect[]">問題は、 throughRequest.Formまたは。のインデックスを作成できないことだと思いますRequest.QueryString

コードにブレークポイントを設定すると、Request.FormオブジェクトがRequest.Form["BroadcastSelect[]"]使用可能なアイテムの1つとして含まれ、値のCSVリストが返されることがわかります。

代わりにこれを使用してみてください...

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

もちろん、ブロック内のコードを1行にまとめることもできますが、最初の項目以外のものが必要な場合は、「範囲外」のインデックスが選択されていないことを確認してください...

Label1.Text = broadcastSelect.Split(',')[0];
于 2012-07-31T10:00:32.310 に答える