2012-07-31 60 views
0

我有這張表,我創建動態複選框(記錄的數量可能/會有所不同)這個想法是,我可以在任何錶行上選擇一個複選框,並「發送」這些記錄。通過HTTP發送表格複選框值數組Post date

我想發送一個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> 

我認爲這是發送陣列OK,因爲我成功地通過Request.in看到這個

BroadcastSelect[]TESTGROUP(這是我送的項目之一)

但我接收頁面上我得到什麼,但我試過

Label1.Text = Page.Request.Form["BroadcastSelect[0]"]; 
空白文本

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

但是沒有值被打印。任何人都可以將我指向正確的方向嗎?

+0

您的''格式不正確,未正確關閉。不知道這是否會有所作爲,雖然 – freefaller 2012-07-31 09:49:35

+0

剛剛發現了這個我自己,沒有區別,雖然:( – JazziJeff 2012-07-31 09:52:56

回答

2

我認爲問題在於不可能通過Request.FormRequest.QueryString<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]; 
+0

似乎正在通過:)是否有任何方式來確定在帖子中有多少項目?感謝您的幫助! – JazziJeff 2012-07-31 10:06:54

+0

'broadcastSelectParts.Length'?很顯然,只有在有一個有效的字符串需要分割時纔會起作用,因爲空字符串分割會產生一個項目。 **編輯**然而,說,有'StringSplitOptions.RemoveEmptyEntries'選項,你可以使用'分裂' – freefaller 2012-07-31 10:08:18

+0

@JazziJeff,或者你是在談論整個'Request.Form'的帖子總數?這是更棘手的,因爲你必須考慮_EVENTTARGET類型的項目,以及索引項目,如您的輸入 – freefaller 2012-07-31 10:13:11