我有一个html控件select
<select id="Select1" runat="server" name="D1">
<option></option>
</select>
如何使用SQL Server
或C#
填充JavaScript/jQuery/JSON
数据库中的数据?
请不要发布关于如何填充asp:DropDownList
的答案,因为我已经知道如何操作,我必须使用select
控件。
答案 0 :(得分:21)
ASPX:
<select id="Select1" runat="server" name="D1">
</select>
代码背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string ConnectString = "server=localhost;database=pubs;integrated security=SSPI";
string QueryString = "select * from authors";
SqlConnection myConnection = new SqlConnection(ConnectString);
SqlDataAdapter myCommand = new SqlDataAdapter(QueryString, myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Authors");
Select1.DataSource = ds;
Select1.DataTextField = "au_fname";
Select1.DataValueField = "au_fname";
Select1.DataBind();
}
}
答案 1 :(得分:5)
function GetItems() {
var items;
$.getJSON("/api/MethodName/" + id(Optional), function (data) {
$.each(data, function (key, val) {
items += "<option value='" + val.id+ "'>" + val.value+ "</option>";
});
var header = '<option value=\'\'>Select...</option>';
$('#Select1').html(header + items);
});
};
你可以使用asp.net webapi for json,它非常简单快捷
答案 2 :(得分:3)
您可以在ajax中使用json
,但必须使用某些Web服务从服务器返回json。
$.ajax({
url:'/path/to/webservice/method',
type:'POST',
dataType: 'json',
success: function(data){
$.each(data, function(i, item){
$('<option value="'+item.val+'">'+item.text+'</option>').appendTo('#Select1');
});
},
error: function(){
console.log('err')
}
});
答案 3 :(得分:3)
在代码背后:
string options = string.Empty;
using (SqlConnection sql_conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connstr"].ToString()))
{
SqlDataAdapter sql_adapter = new SqlDataAdapter("select Value, Name from YourTable", sql_conn);
DataSet ds = new DataSet();
sql_adapter.Fill(ds, "TempTable");
foreach (DataRow row in ds.Tables["TempTable"].Rows)
{
options = "<option value='" + row["Value"] + "'>" + row["Name"] + "</option>";
}
sql_conn.Close();
return options;
}
然后你可以使用jquery:
$.get(url, function (data) {
$('#Select1').html(data);
});
答案 4 :(得分:2)
您可以使用转发器
<select>
<asp:Repeater ID="Repeater1" runat ="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<option value='<%# Eval("ID")%>'> <%# Eval("ITEMNAME")%></option>
</ItemTemplate>
</asp:Repeater>
</select>
答案 5 :(得分:0)
using (SqlConnection con = new SqlConnection("Data Source = [HostName]; Initial Catalog = CustomerOrders; Integrated Security = true"))
{
SqlCommand cmd = new SqlCommand("SELECT Name FROM Customer", con);
con.Open();
dropDownList.DataSource = cmd.ExecuteReader();
dropDownList.DataTextField = "Name";
dropDownList.DataValueField = "Name";
dropDownList.DataBind();
}