有没有办法让asp:DropDownList
绑定的项目显示输出内联而不是换行符,我目前有大约1000多个项目多次绑定到DropDownList
,导致这么多行在HTML
&导致页面加载缓慢
当前显示的内容(简短版)
<select name="randomName" onchange="randomOnChane" id="randomId">
<option value="42">Test</option>
<option value="43">Test</option>
<option value="44">Test</option>
<option value="45">Test</option>
<option value="46">Test</option>
<option value="47">Test</option>
<option value="48">Test</option>
<option value="49">Test</option>
<option value="50">Test</option>
<option value="51">Test</option>
</select>
我想要什么
<select name="randomName" onchange="randomOnChane" id="randomId">
<option value="42">Test</option><option value="43">Test</option><option value="44">Test</option>
<option value="45">Test</option><option value="46">Test</option><option value="47">Test</option>
<option value="48">Test</option><option value="49">Test</option><option value="50">Test</option>
<option value="51">Test</option>
</select>
答案 0 :(得分:0)
您可以继承控件,然后拦截呈现的HTML并对其进行过滤,就像这样
class MyLinelessWebControl: System.Web.UI.WebControls.DropDownList()
{
protected override RenderControl(HtmlTextWriter writer)
{
StringWriter sw = new StringWriter();
HtmlTextWriter tempWriter = new HtmlTextWriter(sw);
base.RenderControl(tempWriter);
writer.Write(sw.ToString().Replace("\r\n",""));
}
}
话虽如此,我怀疑删除换行符会提高性能。
答案 1 :(得分:0)
下拉列表中有1000多个项目?难怪你的网页加载缓慢。缩小您的HTML并不会在性能方面做出很大改变。你应该看一下&#34;自动完成&#34;功能,例如http://jqueryui.com/autocomplete/。
另外,作为一个用户,我很乐意滚动浏览超过1000个项目的列表:)