在asp.net中将数据绑定到html5 DataList

Posted

技术标签:

【中文标题】在asp.net中将数据绑定到html5 DataList【英文标题】:Binding data to html5 DataList in asp.net 【发布时间】:2013-03-15 17:42:04 【问题描述】:

我正在尝试使用 html5。当我们将数据从数据表绑定到asp.net下拉控件时,是否可以将数据绑定到html5中的datalist。

我在哪里可以找到这些详细信息。任何指针都非常感谢。 :)

谢谢

【问题讨论】:

【参考方案1】:

1) 将runat="server" 分配给数据列表,以便可以从后面的代码中访问它:

Enter your favorite browser name:<br />
<input id="browserName" list="browsers" />
<datalist id="browsers" runat="server" /> 

2) 循环遍历DataTable,使用StringBuilder 构造和连接选项列表,并将结果添加到数据列表的InnerHtml 属性中

    protected void Page_Load(object sender, EventArgs e)
    
        DataTable table = new DataTable();
        table.Columns.Add("BrowserName");
        table.Rows.Add("IE");
        table.Rows.Add("Chrome");
        table.Rows.Add("Firefox");
        table.Rows.Add("Opera");
        table.Rows.Add("Safari");

        var builder = new System.Text.StringBuilder();

        for (int i = 0; i < table.Rows.Count; i++)
            builder.Append(String.Format("<option value='0'>",table.Rows[i][0]));
        browsers.InnerHtml = builder.ToString();
    

如果您要在站点的多个位置使用此功能,您可以通过create a WCF service and call it via jQuery 填充数据列表或创建 HTTP 处理程序,如下所示:

1)在您的项目中添加一个通用处理程序并将其命名为 AutoCompleteHandler.ashx

2)在 AutoCompleteHandler.ashx 中放入:

public class AutoCompleteHandler : IHttpHandler

    public void ProcessRequest(HttpContext context)
    
        context.Response.ContentType = "text/plain";
        context.Response.Clear();

        var options = new System.Text.StringBuilder();
        options.Append("<option value='IE'>");
        options.Append("<option value='Chrome'>");
        options.Append("<option value='Firefox'>");
        options.Append("<option value='Safari'>");
        options.Append("<option value='Opera'>");

        context.Response.Write(options.ToString());
        context.Response.End();
    
    public bool IsReusable
    
        getreturn false;
    

3)当页面加载时通过jQuery调用处理程序并使用返回的结果填充数据列表:

<script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () 
        $.post('AutoCompleteHandler.ashx', function (data) 
            $('#browsers').html(data);
        );
    );
</script>

【讨论】:

你加倍努力。感谢您的详细回答和参考:)

以上是关于在asp.net中将数据绑定到html5 DataList的主要内容,如果未能解决你的问题,请参考以下文章

asp.net datalist 指定列植转换

asp.net,我想做一个企业网址,别人提供了HTML页面,但是我怎么把数据绑定在html里面把数据展示给别人看

在 MVC ASP.Net 中将插件添加到部分视图选择列表

如何将json返回的数据绑定到asp.net中的jquery gridview?

如何在 asp .NET 中将记录添加到数据库中

Html5 data-* with asp.net mvc TextboxFor html属性