在DataGrid中使用DropDownList(原创)

  B/S架构的MIS中,在DataGrid中使用DropDownList是很常见的事情
Html代码如下:
None.gif < asp:TemplateColumn HeaderText = " 细目 " >
None.gif
None.gif       
< HeaderStyle Width = " 15% " ></ HeaderStyle >
None.gif
None.gif              
< ItemTemplate >
None.gif
None.gif                     
< asp:Label Runat = server Text = ' <%#DataBinder.Eval(Container, "DataItem.TicketType")%> ' ></ asp:Label >
None.gif
None.gif              
</ ItemTemplate >
None.gif
None.gif       
< EditItemTemplate >
None.gif
None.gif                     
< asp:DropDownList id = " ddl_Detail "  runat = " server "  Width = " 100% " >
None.gif
None.gif                            
< asp:ListItem Value = " Train " > 火车票 </ asp:ListItem >                                                   < asp:ListItem Value = " Air " > 机票 </ asp:ListItem >
None.gif
None.gif                            
< asp:ListItem Value = " Taxi " > 计程车费 </ asp:ListItem >
None.gif
None.gif                            
< asp:ListItem Value = " Bus " > 公共汽车费 </ asp:ListItem >
None.gif
None.gif                            
< asp:ListItem Value = " Book " > 订票费 </ asp:ListItem >
None.gif
None.gif                            
< asp:ListItem Value = " Other " > 其它 </ asp:ListItem >
None.gif
None.gif                     
</ asp:DropDownList >
None.gif
None.gif                     
< asp:Label Runat = server ID = lbl_Detail Text = ' <%#DataBinder.Eval(Container, "DataItem.TicketType")%> '  Visible = False ></ asp:Label >
None.gif
None.gif       
</ EditItemTemplate >
None.gif
None.gif
</ asp:TemplateColumn >
None.gif
None.gif       
< asp:TemplateColumn HeaderText = " 来程/去程 " >
None.gif
None.gif         
< HeaderStyle Width = " 15% " ></ HeaderStyle >
None.gif
None.gif           
< ItemTemplate >
None.gif
None.gif                
< asp:Label Runat = server Text = ' <%#DataBinder.Eval(Container, "DataItem.ComeOrBack")%> ' ></ asp:Label >
None.gif
None.gif              
</ ItemTemplate >
None.gif
None.gif       
< EditItemTemplate >
None.gif
None.gif              
< asp:DropDownList id = " ddl_ComeOrBack "  runat = " server "  Width = " 100% " >
None.gif
None.gif                     
< asp:ListItem Value = " Come " > 来程 </ asp:ListItem >
None.gif
None.gif                     
< asp:ListItem Value = " Back " > 去程 </ asp:ListItem >
None.gif
None.gif              
</ asp:DropDownList >
None.gif
None.gif              
< asp:Label Runat = server ID = " lbl_ComeOrBack "  Text = ' <%#DataBinder.Eval(Container, "DataItem.ComeOrBack")%> '  Visible = False ></ asp:Label >
None.gif
None.gif       
</ EditItemTemplate >
None.gif
None.gif
</ asp:TemplateColumn >
None.gif

这个 DataGrid 的第一个 Column 是编辑列 ,DropDownList 放在 EditItemTemplate 里,点击“修改”, 问题出现了,修改前的细目是“计程车票”,点击“编辑”后,如何使ddlindex还保持在继承车票上呢?C#代码如下:
None.gif private   void  dg_Detail_ItemDataBound( object  sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
None.gif
ExpandedBlockStart.gifContractedBlock.gif         
dot.gif {
InBlock.gif
InBlock.gif              
if( e.Item.ItemType == ListItemType.EditItem )//判断是否是EditItemTemplate
InBlock.gif

ExpandedSubBlockStart.gifContractedSubBlock.gif              
dot.gif{
InBlock.gif
InBlock.gif                   DropDownList ddl_Detail 
= (DropDownList)e.Item.FindControl("ddl_Detail");
InBlock.gif
InBlock.gif                   DropDownList ddl_ComeOrBack 
= (DropDownList)e.Item.FindControl("ddl_ComeOrBack");
InBlock.gif
InBlock.gif                   Label lbl_Detail 
= (Label)e.Item.FindControl("lbl_Detail");
InBlock.gif
InBlock.gif                   Label lbl_ComeOrBack 
= (Label)e.Item.FindControl("lbl_ComeOrBack");
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif                   
string str1 = lbl_Detail.Text;
InBlock.gif
InBlock.gif                   
string str2 = lbl_ComeOrBack.Text;
InBlock.gif
InBlock.gif                   ddl_Detail.SelectedIndex = ddl_Detail.Items.IndexOf( ddl_Detail.Items.FindByText(str1) );               ddl_ComeOrBack.SelectedIndex = ddl_ComeOrBack.Items.IndexOf( ddl_ComeOrBack.Items.FindByText(str2) );//这里的代码就是为了设置ddl的索引

ExpandedSubBlockEnd.gif              }
        
InBlock.gif
ExpandedBlockEnd.gif         }

None.gif
None.gif


  OK!

转载于:https://www.cnblogs.com/DavidZhang/archive/2006/02/16/331652.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值