DropDownList怎样与数据库中的数据绑定
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DropDownList怎样与数据库中的数据绑定相关的知识,希望对你有一定的参考价值。
参考技术A 第一步:连接数据库第二步:取得数据/
第三步:为其指定数据源
第四步:指定其text和value值。
第五步:绑定
参考代码:
SqlConnection con3=new SqlConnection("Server=.;user id=sa;password=123456;Database=FABS");
con3.Open();
SqlCommand cmd3=new SqlCommand();
cmd3.CommandText="select * from sheng";
cmd3.CommandType=CommandType.Text;
cmd3.Connection=con3;
SqlDataReader sdr3=cmd3.ExecuteReader();
DropDownList1.DataSource =sdr3;
DropDownList1.DataTextField = "shengming";
DropDownList1.DataBind();
con3.Close(); 参考技术B 先获取数据库里的数据,比如用DataSet来存储数据
然后把这个DataSet给DropDownList.DataSource
然后指定text和value的表字段 参考技术C DropDownList任务,选择数据源,连接你的SQL
最后再选择你要绑定的哪个列名~
或者在控件的属性那里,有个数据,里面有dotasourseid 选个数据源,控制跟上面一样 参考技术D 基本上有两种方法
第一种 -------------------------------------------
在页面添加DropDownList 控件
<asp:DropDownList ID="DropDownList1" runat="server" Height="16px" Width="137px">
</asp:DropDownList>
在设计视图下选择该控件的智能标记,选择选择数据源,你只需要根据实际依次选择数据库,表,以及要绑定到该控件的值列和名称列即可
第二种 --------------------------------------------
程序方法添加之 一 界面已存在控件
<asp:DropDownList ID=" drList " runat="server" Height="16px" Width="137px">
</asp:DropDownList>
程序方法添加之 二 需要想界面动态添加控件
DropDownList drList = New DropDownList();
以上两种方法使用的数据绑定,均可用一下代码来实现
1,连接数据需并将要绑定的数据列查询返回到DataTable
2,用For 或者 foreach 循环遍历当前DataTable要与drList绑定的数据列,使用如下方法绑定
以下是示例:
DataTable dat = new DataTable();
DropDownList drList = new DropDownList();
int Bang_Value = 0;//指定要绑定的值列
int Bang_Text = 1;//指定要绑定的名称列
for (int i = 0; i < dat.Rows.Count; i++)
drList.Items.Add(dat.Rows[i][Bang_Text].ToString());
drList.Items[i].Value = dat.Rows[i][Bang_Value].ToString();
在设计视图下选择该控件的智能标记,选择选择数据源,你只需要根据实际依次选择数据库,表,以及要绑定到该控件的值列和名称列即可
如何在不使用ViewData的情况下将对象属性绑定到DropDownList中的数据源
我的kendo Grid中有一个DropDownList列。我想将DataSource中的ViewData [“genres”]更改为GenreViewModel属性“AllGenres”。我怎样才能做到这一点?不要忘记我使用js版本的Grid(不是mvc)。
我认为应该看起来像:
dataSource: @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize("AllGenres"))
要么
dataSource: "AllGenres"
反对:
dataSource: @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewData["genres"]))
我的DropDownList:
function genreDropDownEditor(container, options) {
$('<input required name="' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
autoBind: false,
dataTextField: "GenreName",
dataValueField: "GenreId",
dataSource: @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(ViewData["genres"]))
});
<script type="text/kendo" id="genresTemplate">
#if(data.Genre != null)
{ #
#: Genre.GenreName #
# } #
我的GenreViewModel:
public class GenreViewModel
{
public int GenreId { get; set; }
public string GenreName { get { return Enum.GetName(typeof(Genre), GenreId); } }
public static List<GenreViewModel> AllGenres
{
get
{
return Enum.GetValues(typeof(Genre)).Cast<Genre>().Select(v => new GenreViewModel
{
GenreId = ((int)v)
}).ToList();
}
}
}
答案
Stephen Muecke在评论中给出了答案。(不知道如何正确选择他的评论)
dataSource: @Html.Raw(Json.Encode(Model.AllGenres)).
但我没有在我的视图中声明模型,所以我使用了我的静态属性:
dataSource: @Html.Raw(Json.Encode(Number2.Models.GenreViewModel.GetAllGenres))
以上是关于DropDownList怎样与数据库中的数据绑定的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用ViewData的情况下将对象属性绑定到DropDownList中的数据源
步步为营-94-GridView中的DropDownlist值得获取与绑定