怎么在jqgrid中设置checkbox多选,怎么获取多选的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在jqgrid中设置checkbox多选,怎么获取多选的值相关的知识,希望对你有一定的参考价值。
参考技术A protected void Page_Load(object sender, EventArgs e)CheckBox chk = new CheckBox();
chk.Text = "testall"; // 这里可以换成数据库的内容
chk.CheckedChanged += new EventHandler(chk_CheckedChanged);
chk.AutoPostBack = true;
Page.Form.Controls.Add(chk);
for (int i = 0; i < 10; i++)
CheckBox chk2 = new CheckBox();
chk2.Text = "test" + i.ToString(); // 这里可以换成数据库的内容
chk2.Checked = (i % 3 == 0); // 这里可以换成数据库的内容
Page.Form.Controls.Add(chk2);
void chk_CheckedChanged(object sender, EventArgs e)
CheckBox all = sender as CheckBox;
foreach(Control ctl in Page.Form.Controls)
if (ctl is CheckBox)
CheckBox chk = ctl as CheckBox;
chk.Checked = all.Checked;
本回答被提问者和网友采纳
在多选下拉菜单中设置多个默认选定值
【中文标题】在多选下拉菜单中设置多个默认选定值【英文标题】:Setting multiple default selected values in multi select dropdown 【发布时间】:2012-06-06 03:04:10 【问题描述】:// Get Series List
$this->load->model('Series_model');
$serieslist = $this->Series_model->gettypelist($userid, 'e');
$series_item_id = 0;
$this->db->select('series_id');
$this->db->where('type_id', 13);
$this->db->where('series_type', 'e');
$series_item_query = $this->db->get('series_items');
if ($series_item_query->num_rows() > 0)
$series_item_id = $series_item_query->result();
//print_r($series_item_id);
$data['serieslist'] = '<select name="series_id[]" class="type input_select" multiple="multiple">';
$data['serieslist'] .= '<option value="">None</option>';
foreach ($serieslist as $list)
$data['serieslist'] .= '<option value="' . $list->id . '" ' . ($series_item_id[0]->series_id === $list->id ? 'selected="selected"' : '') . '>' . $list->title . '</option>';
$data['serieslist'] .= '</select>';
上面是我正在使用的代码。我希望能够为选择下拉菜单的多个值设置多个 selected="selected"。比如:
<select name="series_id[]" class="type input_select" multiple="multiple">
<option value="">None</option>
<option value="4">Event Series: Test 1</option>
<option value="5">Event Series: Test 2</option>
<option value="16">Event Series: Test 3</option>
<option value="17">Event Series: Test 4</option>
<option value="18">Event Series: Test 5</option>
<option value="19">Event Series: Test 6</option>
<option value="20">Event Series: Test 7</option>
<option value="21">Event Series: Test 8</option>
</select>
我希望选择 4 16 和 19 的选项值 =“selected”,但在我上面的代码中,它只选择 4 然后停止。我错过了什么?如果您需要更多信息,请告诉我。
提前致谢。
编辑:
print_r 的结果:
Array ( [0] => stdClass Object ( [series_id] => 4 ) [1] => stdClass Object ( [series_id] => 16 ) [2] => stdClass Object ( [series_id] => 19 ) )
更新代码:
foreach ($serieslist as $list)
$data['serieslist'] .= '<option value="' . $list->id . '" ' . (in_array($list->id, $series_item_id, TRUE) ? 'selected="selected"' : '') . '>' . $list->title . '</option>';
以上更新的代码不起作用。
【问题讨论】:
为什么不使用in_array()
调用而不是foreach
?
print_r($series_item_id);
的结果是什么?
请根据我的代码提供 in_array() 的示例?而 print_r 结果是 Array ( [0] => stdClass Object ( [series_id] => 4 ) [1] => stdClass Object ( [series_id] => 16 ) [2] => stdClass Object ( [series_id] => 19 ) ),请查看有问题的更新代码。
尝试了in_array(),还是没有区别
【参考方案1】:
您将$list->id
与第一个 $series_item_id 进行比较:$series_item_id [0]->series_id
您需要将其他foreach
放入现有的:
foreach ($serieslist as $list)
foreach ($series_item_id as $series_item)
$data['serieslist'] .= '<option value="' . $list->id . '" ' . ($series_item->series_id === $list->id ? 'selected="selected"' : '') . '>' . $list->title . '</option>';
或获取 series_id 作为数组并使用 in_array()
:
$series_array = array();
foreach ($series_item_id as $series_item)
$series_array[] = $series_item->series_id;
foreach ($serieslist as $list)
$data['serieslist'] .= '<option value="' . $list->id . '" ' . (in_array($series_array, $list->id) ? 'selected="selected"' : '') . '>' . $list->title . '</option>';
【讨论】:
尝试其中任何一个... $series_item_id 是一个对象数组, $list->id 是一个整数,因此 AFAIK 直接比较它们会失败,尤其是在启用严格比较的情况下以上是关于怎么在jqgrid中设置checkbox多选,怎么获取多选的值的主要内容,如果未能解决你的问题,请参考以下文章