首页 新闻 会员 周边

关于循环判断后台数据,默认选中selected的问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-11-10 13:44
1   <% string select = "selected";%>
2   <option value="0" selected="<%:Model.ActionType==0?select:null %>" >查询</option>
3      <option value="1" selected="<%:Model.ActionType==1?select:null %>">更新</option>
4      <option value="2" selected="<%:Model.ActionType==2?select:null %>">删除</option>
5      <option value="3" selected="<%:Model.ActionType==3?select:null %>">添加</option>
6      <option value="4" selected="<%:Model.ActionType==4?select:null %>">其他</option>

问题就在此,本来默认的是"查询",可是最后显示的却是"其他",以前我用的办法是if判断,可是太笨,稍微多一点的options就不行了。

希望同志们能够指出问题到底出在哪里,或者可以介绍更为便捷的方式。

only-time的主页 only-time | 初学一级 | 园豆:4
提问于:2013-11-09 05:24
< >
分享
最佳答案
1
1 <% string select = "select='selected'";%>
2 <option value="0" <%:Model.ActionType==0?select:'' %> >查询</option>
3 <option value="1" <%:Model.ActionType==1?select:'' %>>更新</option>
4 <option value="2" <%:Model.ActionType==2?select:'' %>>删除</option>
5 <option value="3" <%:Model.ActionType==3?select:''%>>添加</option>
6 <option value="4" <%:Model.ActionType==4?select:'' %>>其他</option>

由于 select=''并不是不选择,所以应该直接不写。如上面的代码试试,如果没有选中的,直接输出空格。选中的输出select='selected'

收获园豆:10
谦爸 | 菜鸟二级 |园豆:239 | 2013-11-10 07:37

其实当初一直以为select=''就相当于不选择,所以绕来绕去,给绕迷糊了,你给的答案最完整,就选你啦。

only-time | 园豆:4 (初学一级) | 2013-11-10 13:44
其他回答(4)
0

程序本身判断是没错的, 只是 option 的selected ='' 一样是显示选中状态 改写如下:

   <% string select = "selected";%>
   <option value="0" <%:Model.ActionType==0?select:null %> >查询</option>
      <option value="1" <%:Model.ActionType==1?select:null %>>更新</option>
      <option value="2" <%:Model.ActionType==2?select:null %>>删除</option>
      <option value="3" <%:Model.ActionType==3?select:null %>>添加</option>
      <option value="4"<%:Model.ActionType==4?select:null %>>其他</option>
hpze2000 | 园豆:109 (初学一级) | 2013-11-09 09:59

谢谢朋友的提示。

支持(0) 反对(0) only-time | 园豆:4 (初学一级) | 2013-11-10 13:44
1

我也有个思路,之前我做这种的时候,喜欢配合js来做, 将’查询‘的option的value 放到ViewBag.SelectedValue =1.

然后js中就可以用一个变量来接受这个值,然后使用js来选中。(使用jquery选中就更简单了)

袁家小黑球 | 园豆:1045 (小虾三级) | 2013-11-09 10:38

你的意思应该是:

1.通过Jquery拿到后台传送来的Options值。

2.使用Jquery循环遍历Options的val()。

3.判断val()是否等于Jquery接收的值,如果等于,则添加selected属性。

支持(0) 反对(0) only-time | 园豆:4 (初学一级) | 2013-11-10 13:42

@only-time: 

我还是坚持使用js来控制:

后台中:
{
    //设置需要选中的option的value
    ViewBag.Selected = 2;
}

页面HTML:
<select id="CitySize" name="CitySize">
    <option value="-1">--请选择--</option>
    <option value="0">超大</option>
    <option value="1">特大</option>
    <option value="2">大</option>
    <option value="3">中</option>
    <option value="4">小</option>
</select>

前台js:
$(function(){
    var selected = '<%ViewBag.Selected%>';
    selected = isNaN(selected)?0:selected;
    $("#CitySize").val(selected);// 将会选中:<option value="2">大</option>
});

jquer选中select可以参考 jQuery获取Select选择的Text和 Value(转)

支持(3) 反对(0) 袁家小黑球 | 园豆:1045 (小虾三级) | 2013-11-11 12:14

@袁家小黑球:呵呵,谢谢朋友的回复,我会试试这种方法,辛苦啦、

支持(0) 反对(0) only-time | 园豆:4 (初学一级) | 2013-11-11 13:57
0

我来学习的

大芝麻 | 园豆:4 (初学一级) | 2013-11-09 13:54
0

一开始不管,然后执行一段js代码$('selectId').val(0);

幻天芒 | 园豆:37175 (高人七级) | 2013-11-09 16:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册