在datagrid中定义了一个下拉列表的模板列,我用DataSource='<%# DataBinder.Eval(Container.DataItem,"列名") %>绑定,可下拉列表中的值

zhounet 2004-10-21 10:37:44
在datagrid中定义了一个下拉列表的模板列,我用DataSource='<%# DataBinder.Eval(Container.DataItem,"列名") %>绑定,可下拉列表中的值不对
第一行的下拉列表中的值是第一行绑定的列的每个字符,
比如说 下拉列表绑定a列
列名: a b 下拉列表(c)
string 123 这时下拉列表中有6个item了分别是s,t,r,i,n,g分
string1 123 这时下拉列表中有7个item了分别是s,t,r,i,n,g,1
晕,能不能让每行的下拉列表中只有2行分别是
string
string1

...全文
114 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gmjx 2004-10-21
<
asp:TemplateColumn HeaderText="列名">
<ItemTemplate>
<asp:Label id="Label2" runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="DropDownList2" runat="server" Width="120px"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
在DataGrid1_ItemCreated中给下拉列表绑定值
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.FindControl ("DropDownList2")!=null)
{
SqlCon();//数据源设置
SqlDataAdapter da1=new SqlDataAdapter ("select fname from employee" ,con );
DataSet ds1=new DataSet();
da1.Fill (ds1);
int i;

for (i=0;i<ds1.Tables[0].Rows.Count ;i++)
{
((System.Web.UI.WebControls.DropDownList)e.Item.FindControl ("DropDownList2")).Items.Add (ds1.Tables[0].Rows [i][0].ToString() );
}
}
}
  • 打赏
  • 举报
回复
scocsdn 2004-10-21
你设的数据源是字符串数组!!!
在ItemDataBound事件中绑定数据源
DropDownList dl=(DropDownList)e.Item.FindControl("ID**");
dl.DataSource=**;
dl.DataValueField=**;
dl.DataTextField=**;
dl.DataBind();
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-10-21 10:37
社区公告
暂无公告