从后面的代码中动态创建复选框中获取值

时间:2016-05-12 19:34:44

标签: c# asp.net checkbox dynamic webforms

在我的cms中,我动态创建了行,在每行中我有一个文本框和一个复选框。

  '<input value="FALSE" name="DynamicCheckbox" class="switch-input" type="checkbox" />&nbsp'
+ '<input class="playerNumber" name="DynamicTextBoxName" type="text" size="2" value="' + valueNumber + '" />&nbsp'

从后面的代码我想从每个文本框和复选框中获取值,并将它们放入List对象中。来自文本框的价值我没有遇到任何问题,但我无法从chechboxes获取值。在代码背后我有:

string[] textboxNames = Request.Form.GetValues("DynamicTextBoxName");
string[] checkbox= Request.Form.GetValues("DynamicCheckbox");

List<Classes.Player> PlayerList = new List<Classes.Player>();

for (int i = 0; i < textboxNames.Length; i++)
{
   Classes.Player p = new Classes.Player();
   p.name = textboxNames[i];    //WORKS FINE
   p.start11 = checkbox[i];     //DOES NOT WORK WITH THIS CODE
}
  • 如何获取所有复选框值的字符串数组?
  • 此外,如果我想将其更改为bool数组而不是字符串数组,我应该怎么做?

1 个答案:

答案 0 :(得分:1)

好的,我明白了。根据此post复选框,发布值&#39; true&#39;当且仅当选中复选框时。我没有抓住复选框值,而是使用了隐藏的输入。

<强> JS

&#13;
&#13;
$("#btnAdd").live("click", function() {
  var chk = $('input[type="checkbox"]').last();
  chk.each(function() {
    var v = $(this).attr('checked') == 'checked' ? 1 : 0;
    $(this).after('<input type="hidden" name="' + $(this).attr('data-rel') + '" value="' + v + '" />');
  });


  chk.change(function() {
    var v = $(this).is(':checked') ? 1 : 0;
    $(this).next('input[type="hidden"]').val(v);
  })
});

   
&#13;
<label class="switch">
  <input data-rel="active" value="false" name="DynamicYesNoStart11" class="switch-input" type="checkbox" /><span class="switch-label" data-on="Yes" data-off="No"></span>  <span class="switch-handle"></span>
</label>
&#13;
&#13;
&#13;

代替后面的代码

string[] checkbox= Request.Form.GetValues("DynamicCheckbox");

我把

string[] checkboxYesNoStart11 = Request.Form.GetValues("active");