asp:DropDownList DataBind HTML输出

时间:2016-09-15 21:38:26

标签: c# html asp.net drop-down-menu minify

有没有办法让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>

2 个答案:

答案 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个项目的列表:)