DropDownList 问题

jrl5365 2005-11-10 08:33:11
我是个初学的,现在想实现从一个数据库中把LIST字段的内容读到DropDownList这个控件中,
哪位高手能给个源码看看。。。我现在主要是数据绑定还不是很明白。
...全文
220 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
伴老思源 2005-11-11
  • 打赏
  • 举报
回复
其中Sql语句为:

select Sql语句中的字段1, Sql语句中的字段2
from Table
伴老思源 2005-11-11
  • 打赏
  • 举报
回复
很简单,
你查出一个数据源(DataTable或DataSet都行), 然后将数据字段及相应的值都赋予DropDownList,在绑定就行了,如下(写一小段伪代码方便理解):

DefaultSet:

SqlConnection _conn;
DataTable dtData;
SqlCommand _comm;
DropDownList DDL;

Begin:

CatchData:
_conn.Open;
SqlCommand _comm = new SqlCommand( "Sql语句或存储过程", _conn );
SqlDataAdapter da = new SqlDataAdapter(_comm);
da.Fill( dtData );

DataBind:

DDL.DataSource = dtData;
DDL.DataTextField = "Sql语句中的字段1";
DDL.DataValueField = "Sql语句中的字段2";
DDL.DataBind();

End




深山老翁 2005-11-11
  • 打赏
  • 举报
回复
HrDatabase database = new HrDatabase();
SqlDataReader mydatareader;
database.RunProc(select,out mydatareader);
DropDownList1.DataSource = mydatareader;//是否有数据
DropDownList1.DataTextField = "PolList";
DropDownList1.DataValueField = "PolList";
DropDownList1.DataBind();
mydatareader.Close();//先注释试试看,在RunProc也先不关闭

跟踪一下mydatareader是否有数据,如果有数据而且绑定还有问题就把mydatareader.Close();注释掉先,意思先不关闭,试试看。
jrl5365 2005-11-11
  • 打赏
  • 举报
回复
private const String select="sp_select";

private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
HrDatabase database = new HrDatabase();
SqlDataReader mydatareader;
database.RunProc(select,out mydatareader);
DropDownList1.DataSource = mydatareader;
//DropDownList1.DataTextField = "PolList";
//DropDownList1.DataValueField = "PolList";
DropDownList1.DataBind();
mydatareader.Close();
}

// 在此处放置用户代码以初始化页面
}
sp_select 是这样写的。。。
CREATE PROCEDURE dbo.sp_select
AS
select PolList from HrPol
GO
前台是这样的。。
<asp:DropDownList id="DropDownList1" DataTextField="PolList" style="Z-INDEX: 101; LEFT: 184px; POSITION: absolute; TOP: 120px"
runat="server" Width="152px" Height="48px"></asp:DropDownList>
可是还是不能显示啊。。。。急啊。。谁能帮我啊。。。
q_po_o 2005-11-11
  • 打赏
  • 举报
回复
1、你得用
if(!IsPostBack)
{
HrDatabase database = new HrDatabase();
SqlDataReader mydatareader;
database.RunProc(select,out mydatareader);
DropDownList1.DataSource = mydatareader;
//DropDownList1.DataTextField("PolList");
//DropDownList1.DataValueField("PolList");
DropDownList1.DataBind();

}
2、你的mydatareader是在那close()的?应该在DropDownList1.DataBind();后边
dreammaster 2005-11-11
  • 打赏
  • 举报
回复
DropDownList1.DataTextField = "PolList";
DropDownList1.DataValueField = "PolList";
这样写在后台就可以了,jxufewbt(我的目标是5星) ( 一星(中级)) 的写法就可以。
jrl5365 2005-11-11
  • 打赏
  • 举报
回复
private const String select="sp_select";

private void Page_Load(object sender, System.EventArgs e)
{
HrDatabase database = new HrDatabase();
SqlDataReader mydatareader;
database.RunProc(select,out mydatareader);
DropDownList1.DataSource = mydatareader;
//DropDownList1.DataTextField("PolList");
//DropDownList1.DataValueField("PolList");
DropDownList1.DataBind();

// 在此处放置用户代码以初始化页面
}
我现在做的是这样的,可是运行还是什么也没的读出来了。。.....
在HTML 我这样写了..datatextfiel = "PoList"
jxufewbt 2005-11-10
  • 打赏
  • 举报
回复
DropDownList1.DataSource = ds;
DropDownList1.DataValueField = "主键字段";
DropDownList1.DataTextField = "值字段";
DropDownList1.DataBind();
ChengKing 2005-11-10
  • 打赏
  • 举报
回复
1.从DS中绑定
this.dpdAreas.DataTextField = "AreaName";
this.dpdAreas.DataValueField = "AreaID";
this.dpdAreas.DataSource = DS;
this.dpdAreas.DataBind();

你的DS中必须有AreaName和AreaID两个字段


2.自定义数据绑定
for(int i = 10;i <= 50; i += 10)
{
ListItem ls = new ListItem();
ls.Text = i.ToString()+"人";
ls.Value = i.ToString();
this.ddlDisplayNum.Items.Add(ls);
}
this.ddlDisplayNum.Items.Add(new ListItem("全部",""));
this.ddlDisplayNum.SelectedValue = "20";

110,548

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧