【发布时间】:2013-09-20 12:29:09
【问题描述】:
我正在使用所选的 jQuery 插件,并且我相信我已经正确完成了所有操作,但是我的 asp.net 下拉列表的宽度太小了,以至于我看不到结果。
首先我添加了对库的引用:
<script type="text/javascript" src="Chosen/chosen.jquery.js"></script>
我包含了 CSS:
<link rel="stylesheet" href="Chosen/chosen.css" />
然后我将该类应用到我的下拉列表中:
<asp:DropDownList class="chosen-select" ID="ddlEmps" runat="server" AutoPostBack="True"
ToolTip="Select the employee."
onselectedindexchanged="ddlEmps_SelectedIndexChanged" >
终于在文件准备好了我.chosen()它:
$(document).ready(function() {
$(".chosen-select").chosen();
});
这是浏览器中的 html 标记:
标记基本上是:
<select name="ddlEmps" onchange="javascript:setTimeout('__doPostBack(\'ddlEmps\',\'\')', 0)" id="ddlEmps" title="Select the employee." class="chosen-select" style="display: none;">
<option value="2661">Jon</option>
<option value="2987">Joe</option>
<option value="3036">Steve</option>
<option selected="selected" value="68">Mark</option>
</select>
这是它的外观:
我相信它应用正确,因为 css 在那里,控制台中没有浏览器问题(chrome / ff / ie)。我什至可以开始输入内容,结果变小了,我就是看不到结果?
更新
我唯一注意到的是,如果我有一个 DropDownList,但我上面没有 chosen-select 类(基本上是一个普通的旧 asp.net 下拉列表),并且没有在文档就绪或窗口中应用选择它onload...如果我只是在控制台期间对其应用.chosen(),它会正确显示,例如这里是一个简单的下拉列表,没有应用.chosen:
所以它看起来是正确的...如果我现在转到控制台部分(谷歌浏览器)并执行以下操作:
$("#ddlEREmployees").chosen();
这只是直接在我输入的控制台中,然后它的工作原理如下所示:
当然,我仍然需要完成这项工作,而不必去控制台并这样做......
更新 2
我查看了呈现的 html,它产生了一个宽度:0px,但我不确定它来自哪里:
<div class="chosen-container chosen-container-single" style="width: 0px;" title="Select the employee." id="ddlEtimeEmps_chosen"><a class="chosen-single" tabindex="-1"><span>Jon</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off"></div><ul class="chosen-results"></ul></div></div>
注意部分
style="width: 0px;"
当我检查谷歌浏览器时,它没有引用 .css 文件...它只是说:
我看到的样式和下面:
element.style {
width: 0px;
}
这可能来自哪里?我怎样才能删除它?
【问题讨论】:
-
什么时候填写下拉列表值?
-
@IrvinDomininakaEdward - 这是 asp.net 网络表单等页面加载。
-
尝试使用 $(window).load(function(){ 代替 domready
-
@IrvinDomininakaEdward - 我不认为这是问题所在,并不是说它不起作用......正如我提到的,我实际上可以在输入
chosen下拉列表时过滤结果。问题是我没有看到结果... -
我认为选择的 init 在页面加载完成之前被触发,因此宽度是空控件;尝试使用 windows.load 选择初始化。
标签: jquery asp.net webforms jquery-chosen