首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为多选择列表框mvc设置下拉宽度

如何为多选择列表框mvc设置下拉宽度
EN

Stack Overflow用户
提问于 2014-07-22 16:25:42
回答 2查看 1.8K关注 0票数 2

这是我的listbox编辑器模板

代码语言:javascript
复制
@if (ViewData[fieldId + "_list"] is   System.Collections.IEnumerable)
   { 
    @Html.ListBox("", new MultiSelectList((System.Collections.IEnumerable)ViewData[fieldId + "_list"], "Value", "Name", Model),
    new { @style = "margin:0px; width:225px;", @class = "multi-select", multiple = "multiple", data_placeholder = " " })
   }
   else
    { 
@Html.ListBox("", new MultiSelectList(new List<SingleValueHolder<int>>(), Model),
    new { @style = "margin:0px; width:225px;", @class = "multi-select", multiple = "multiple", data_placeholder = " " })}

如果我们在这里设置宽度,则会设置整个列表框宽度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-07 10:40:35

您需要两个列表框,一个具有所需的宽度,另一个保存该值。然后使用神奇的z-索引来隐藏大下垂的那个。

参见此链接到JSFIDDLE

代码语言:javascript
复制
<div> <span> <select readonly='readonly' id='sel' name="sometext" style = "width:55px;position: absolute; z-index: -1">
    <option>text1</option>
    <option>text2</option>
    <option>text3</option> 
    <option >some very long text </option>         
</select>
   <div  style="width:500px;height:25px ;background-color:white; z-index: 10" >
       <div id="ddiv" tyle="width:500px;height:25px ;background-color:white; z-index: 15" />
       <select id='dummy' style = "width:65px;position: absolute; z-index: 10">
             <option style="display:none">text1</option>
    <option style="display:none">text2</option>
    <option style="display:none">text3</option>
            <option style="display:none">some very long text </option>  
       </select>
       </div>
   </span>
</div>

和javascript

代码语言:javascript
复制
$('#sel').change(function () {
$('#dummy').val($('#sel').val());
});

$('#ddiv').click(function () {
open($('#sel'));
}
);

function open(elem) {
if (document.createEvent) {
    var e = document.createEvent("MouseEvents");
    e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    elem[0].dispatchEvent(e);
} else if (element.fireEvent) {
    elem[0].fireEvent("onmousedown");
}
}
票数 2
EN

Stack Overflow用户

发布于 2014-08-01 06:05:21

我认为您正在设置整个列表框i.e:@html.Listbox的html属性。因此,您将得到相同的宽度。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24892780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档