在Web表單我動態創建一系列chekboxes的被添加到一個asp:佔位如何從一個動態生成的複選框列表獲取複選框的值在asp.net
//Generates the List of Entities that may be shared
protected void GenerateEntityList(string agencyId, string agencyName)
{
var selectedAgency = UserFactory.GetAgencyAndSharedDataById(Convert.ToInt64(agencyId));
entityContainer.Controls.Clear();
//builds the entity list based upon entities in DB
var currentEntities = UserFactory.GetEntityList();
//add checkboxes
entityContainer.Controls.Add(new LiteralControl("<input type='checkbox' id='selectAllCB' value='All'>Select All<br/><br/>"));
foreach (var item in currentEntities)
{
CheckBox entityCheckBox = new CheckBox();
int currentItem = item.EntityTypeId.GetValueOrDefault(0);
entityCheckBox.Text = item.EntityName.ToString();
entityCheckBox.CssClass = "am_Checkbox";
entityContainer.Controls.Add(entityCheckBox);
entityContainer.Controls.Add(new LiteralControl("<br/><br/>"));
//mark checkboxes as checked if currently stored in the database
if (selectedAgency.FirstOrDefault().SecurityDataShares != null && selectedAgency.FirstOrDefault().SecurityDataShares.Count > 0)
{
foreach (var ce in selectedAgency.FirstOrDefault().SecurityDataShares)
{
if (ce.EntityId == item.EntityId)
{
entityCheckBox.Checked = true;
}
}
}
}
一旦創建的用戶有能力製作或刪除選擇。點擊更新時,我想返回/收集複選框中的值,以便我可以將它們插入到數據庫中。
//get the text value of every checkbox
protected void updateEnties()
{
string receivingAgency = ReceivingAgencyID;
long contributingAgency = QueryID;
List<string> cbValues = new List<string>();
foreach (CheckBox currentItem in entityContainer.Controls)
{
cbValues.Add(currentItem.Text);
}
}
然而,當我試圖遍歷我沒有得到任何東西收集這使我相信,無論是我錯誤地調用控件或它正在因回傳被破壞。 而不是將這些元素寫入佔位符應該使用另一個控件,如Listbox控件?
有人可以請我提供一些關於如何檢索複選框值的指導嗎?
這似乎工作正常,但要求。Form只返回所選表單元素的「on」值任何有關如何獲取值的建議?檢查示例複選框foo如何獲取'var selectedValues'以顯示數組中的foo與 – rlcrews 2012-04-16 20:51:00
淘汰過程。對於Z項目,如果您知道X被選中,則不檢查(Z - X)。但是當你只想知道檢查了哪些項目時,這個過程會更好。 – Tejs 2012-04-16 21:19:48
啊,這是我的問題。我的列表是使用linq動態生成的,並且按字母順序排序不一定是如何將它存儲在數據庫或固定值中我真的需要導出這兩個數據,以便我可以交叉引用以確保捕獲正確的選中元素 – rlcrews 2012-04-16 21:32:01