2013-11-27 65 views
0

我有一個Gridview控件,其中有多個複選框。從gridview控件隱藏字段存儲和檢索數據

Gridview with checkboxes as my design page

我的要求是:如果我選擇一個複選框,然後相對於該列中的值將儲存在隱藏字段,一旦我點擊分配按鈕,值將被存儲到數據庫中,也使用隱藏字段值重定向到另一個頁面。

是否有可能解決這個問題使用c#不在Javascript?因爲,我無法使用c#將值存儲到隱藏字段中。

+0

答案肯定需要住在柵欄的JS一側,但爲什麼將這些值存儲在隱藏字段而不是適當範圍的JS變量中? –

+0

yah其可能.... –

+0

'如果我選擇一個複選框,那麼相對於該列的值將存儲在隱藏字段中,一旦我點擊分配按鈕,這些值將被存儲到數據庫中並且也被重定向到另一個帶有隱藏字段值的頁面.',如果多個行的複選框被選中,哪些值被保存並顯示在重定向頁面上會怎樣? –

回答

0

實現此目的的一種方法是,通過點擊分配按鈕來遍歷所有行,以確定哪些所有行都具有複選框。然後你可以繼續你的邏輯。

0

你可以試試這個...

<asp:gridview runat="server"> 
    <asp:TemplateField>  
     <ItemTemplate>  
      <asp:CheckBox ID="chkSelItem" runat="server" />  
      <asp:Label ID="lblSelectedItem" value=<%# Eval("Key.Id")) %> 
         visible="False"/> 
     </ItemTemplate> 
    </asp:TemplateField> 
</asp:gridview> 

在代碼隱藏試試這個

protected void btnClick_Click(object sender, EventArgs e) 
{ 
    foreach (GridViewRow row in gridDepartments.Rows)   
    {    
     CheckBox chkSelItem = (CheckBox)row.FindControl("chkSelItem"); 
     Label lblSelectedItem= (Label)row.FindControl("lblSelectedItem"); 

     if (chkSelItem.Checked) 
     { 
      int departmentId = int.Parse(lblSelectedItem.Text); 
     } 
    } 
} 
0

我認爲在這種情況下沒有使用隱藏域的。

您可以遍歷網格,對複選框進行類型轉換,檢查複選框是否被選中,然後獲取該行的值。如果檢查到多行,則可以將所有值添加到列表中,然後單擊Assign按鈕執行操作。

要將值傳遞給另一個屏幕,請將所需的信息放入Session變量中。

乾杯!