ASP.NET:在DataGrid中显示下拉列表框

脚本:

 1 < asp:DataGrid  id ="dgHHRole"  runat ="server"  CssClass ="DefaultText"  AutoGenerateColumns ="False"  AllowPaging ="True"  PageSize ="20"  AllowSorting ="True" >
 2 < FooterStyle  Wrap ="False"  HorizontalAlign ="Center"  VerticalAlign ="Middle" ></ FooterStyle >
 3 < SelectedItemStyle  HorizontalAlign ="Center"  ForeColor ="Black"  CssClass ="defaultText"  BackColor ="#99FFFF" ></ SelectedItemStyle >
 4 < AlternatingItemStyle  HorizontalAlign ="Center"  CssClass ="GridAlternateRows" ></ AlternatingItemStyle >
 5 < ItemStyle  HorizontalAlign ="Center" ></ ItemStyle >
 6 < HeaderStyle  HorizontalAlign ="Left"  CssClass ="GridHeaderAbove"  VerticalAlign ="Middle" ></ HeaderStyle >
 7 < Columns >
 8      < asp:BoundColumn  Visible ="False"  DataField ="RoleId"  HeaderText ="RoleId" ></ asp:BoundColumn >
 9      < asp:BoundColumn  DataField ="FullName"  SortExpression ="FullName"  HeaderText ="Full Name" ></ asp:BoundColumn >
10      < asp:BoundColumn  DataField ="Location"  HeaderText ="Location" ></ asp:BoundColumn >
11      < asp:BoundColumn  DataField ="CallType"  HeaderText ="Call Type" ></ asp:BoundColumn >
12      < asp:BoundColumn  DataField ="RouteNm"  HeaderText ="Route Number" ></ asp:BoundColumn >
13      < asp:TemplateColumn  HeaderText ="Role" >
14          < ItemTemplate >
15              < asp:DropDownList  id ="ddlHHRole"  runat ="server" ></ asp:DropDownList >
16          </ ItemTemplate >
17      </ asp:TemplateColumn >
18 </ Columns >
19 < PagerStyle  Mode ="NumericPages" ></ PagerStyle >
20 </ asp:DataGrid >

在ItemCreated事件中绑定数据

 1          private   void  dgHHRole_ItemCreated( object  sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 2          {
 3            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 4            {
 5                DropDownList ddl = (DropDownList)e.Item.FindControl("ddlHHRole");
 6                if(ddl != null)
 7                {
 8                    ddl.DataSource = HHRoleDt;
 9                    ddl.DataTextField = "RoleNm";
10                    ddl.DataValueField = "RoleId";
11                    ddl.DataBind();
12                }

13            }

14        }

在ItemDataBound事件中设置值

 1          private   void  dgHHRole_ItemDataBound( object  sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 2          {
 3            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
 4            {
 5                DropDownList ddl = (DropDownList)e.Item.FindControl("ddlHHRole");
 6                ListItem lst = new ListItem();
 7                lst.Text = "";
 8                lst.Value = "";
 9
10                ddl.Items.Insert(0,lst);
11                SetValue(ddl,e.Item.Cells[0].Text);
12            }

13        }

14
15          private   void  SetValue(DropDownList ddl, string  strvalue)
16          {
17            if(strvalue == null || strvalue.Trim().Length ==0)
18            {
19                return;
20            }

21            if(ddl != null && ddl.Items.Count >0)
22            {
23                int iIndex;
24                for(iIndex=0;iIndex<ddl.Items.Count;iIndex++)
25                {
26                    if(ddl.Items[iIndex].Value.Trim() ==  strvalue.Trim())
27                    {
28                        ddl.Items[iIndex].Selected =true;
29                        return;
30                    }

31                    else
32                    {
33                        ddl.Items[iIndex].Selected =false;
34                    }

35                }

36            }

37        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值