Asp.net数据绑定到htmlselect与ajax

时间:2017-01-07 20:02:32

标签: asp.net ajax data-binding

嗨,我知道HTMLSELECT元素有数据源和数据绑定道具。那么你们可以给我一个在asp.net中用Ajax POST数据绑定到HTMLSELECT的例子吗?

修改

好的家伙更具体,我会解释我想做什么。

以下是该方案:

是的我正在使用网络表单和实体框架。我有一个linq查询,它给我一个列表。此查询需要一个值,该值将来自AJAX POST到静态函数。

在这个代码背后的静态函数中,我使用AJAX从页面获取TEXTBOX的值,我就能够做到。

但问题是:

在静态方法中,我需要将HTMLSELECT元素的数据源绑定到linq查询。那我怎么能这样做呢?

1 个答案:

答案 0 :(得分:1)

Bindrid从你的问题的上下文中提到它听起来像是在使用网络表单? aspx页面?通常这涉及服务器控件。所以在典型的场景中,您将数据绑定您的服务器控件。如果您有兴趣与服务器控件进行交互而不刷新整个页面,则通常使用asp.net更新面板。这并不是说用ajax调用来保护你的html选择不能在web表单页面中完成(我经常使用web方法或web api调用来完成)但这不是通常对web表单进行的方式。下面是下拉服务器端控件的数据绑定示例。

ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication3.WebForm1" EnableViewState="true" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>  
    </div>
    </form>
</body>
</html>

背后的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication3
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            dropDownInfo dd1 = new dropDownInfo()
            {
                val = "1",
                txt = "one"
            };
            dropDownInfo dd2 = new dropDownInfo()
            {
                val = "2",
                txt = "two"
            };
            dropDownInfo dd3 = new dropDownInfo()
            {
                val = "3",
                txt = "three"
            };
            List<dropDownInfo> list = new List<dropDownInfo>();
            list.Add(dd1);
            list.Add(dd2);
            list.Add(dd3);

            DropDownList1.DataSource = list;
            DropDownList1.DataValueField = "val";
            DropDownList1.DataTextField = "txt";
            DropDownList1.DataBind();
        }


    }

    internal class dropDownInfo
    {
        public string val{ get; set; }
        public string txt { get; set; }

    }
}