编辑DataGrid时动态绑定DropDownList

 

前台代码:
  <asp:DataGrid DataKeyField="id" id="DataGrid1" runat="server"  AutoGenerateColumns="False">
     
<Columns>
//..................... 
<asp:TemplateColumn HeaderText="材质">
       
<ItemTemplate>
        
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Metal") %>' ID="Label2">
        
</asp:Label>
       
</ItemTemplate>
       
<EditItemTemplate>
        
<asp:DropDownList  ID="DropDownList1" runat="server"></asp:DropDownList>
       
</EditItemTemplate>
 
</asp:TemplateColumn>
//.....................
</Columns> 

后台代码:

事件ItemDataBound--这是关键事件

 

        private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        
{
            
if(e.Item.ItemType==ListItemType.EditItem)
            
{

                DropDownList DropDownList1
=(DropDownList)e.Item.FindControl("DropDownList1");
                DropDownList1.DataSource
=helper1.sel("SELECT * from AT_Rating");    
                DropDownList1.DataTextField
="cname";
                DropDownList1.DataValueField
="id";
                DropDownList1.DataBind();

                
string str=Convert.ToString(DataBinder.Eval(e.Item.DataItem,"Metal"));
                
for (int i = 0; i < DropDownList1.Items.Count; i++)
                    
if (DropDownList1.Items[i].Text == str)
                    
{
                        DropDownList1.SelectedIndex 
= i;
                    }


                
//DropDownList1.Items.FindByText(str).Selected=true;也可以用这个赋初始值
            }


        }

UpdateCommand事件:

        private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        
{
            
int   empID =Convert.ToInt16(DataGrid1.DataKeys[(int)e.Item.ItemIndex]);
            DropDownList DropDownList1
=(DropDownList)e.Item.FindControl("DropDownList1");
//...................
        
        }

 

其他的事件和一般情况下的差不多。没有什么值得做个笔记的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值