我有一个场景,我必须根据查询字符串选择丢弃值。
查询字符串可能类似于q=c-1
q=c-2
q=p-5
和下拉列表中的值可以为value="8-P-5"
value="5-G-0"
value="7-P-7"
如何根据查询字符串
选择下拉值是否可以通过Code-behind C#或jquery做到这一点很容易解决。
<select name="ctl00$ContentPlaceHolder1$ddlOptionGroup" id="ContentPlaceHolder1_ddlOptionGroup" class="form-control">
<option value="1-C-1">Item 1</option>
<option value="4-C-2">Item 2</option>
<option value="5-G-0">Item 3</option>
<option value="7-P-7">Item 4</option>
<option value="8-P-5">Item 5</option>
<option value="10-C-4">Item 6</option>
<option value="3-P-0">Item 7</option>
<option value="2-P-0">Item 8</option>
<option value="6-G-0">Item 9</option>
</select>
如果查询字符串为q=c-2
,则应选择<option value="4-C-2" selected>Item 2</option>
答案 0 :(得分:7)
如果您对JavaScript / jQuery解决方案持开放态度,可以使用window.location.search
,然后使用jQuery选择器根据特定select标记中的contains条件查找该选项。
请注意,这会假定q
中的值在select元素的value
属性中是唯一可识别的。在您当前的数据集q=p-0
中,项目7和项目8都匹配。由于你没有为那个案例提供商业规则,所以我在这里没有动过。
以下是演示此内容的代码段:
// use window.location.search
var search = '?q=p-5'; // window.location.search;
// handle possible search for this value ?foo=bar&q=p-5#fragment
var parms = search.substr(1).split('&');
for(var i=0; i< parms.length;i++)
{
var keyValue= parms[i].split('=');
if (keyValue[0] === "q" && keyValue.length > 0) {
var value = keyValue[1].split('#');
$('select > option[value*="' + value[0].toUpperCase() + '"]').prop('selected',true);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="ctl00$ContentPlaceHolder1$ddlOptionGroup" id="ContentPlaceHolder1_ddlOptionGroup" class="form-control">
<option value="1-C-1">Item 1</option>
<option value="4-C-2">Item 2</option>
<option value="5-G-0">Item 3</option>
<option value="7-P-7">Item 4</option>
<option value="8-P-5">Item 5</option>
<option value="10-C-4">Item 6</option>
<option value="3-P-0">Item 7</option>
<option value="2-P-0">Item 8</option>
<option value="6-G-0">Item 9</option>
</select>
答案 1 :(得分:1)
Referer
或者您可以通过Linq语法
来完成for (int i = DropDownList1.Items.Count-1; i >0 ; i--)
{
if (DropDownList1.Items[i].Value.Contains("C-2"))
{
DropDownList1.Items[i].Selected = true;
break;
}
}