从DataGird中取得模版列的值

我做过的一个页面:要从Datagrid模版列中取得绑定的值
从网上一搜,发现大都用FindContol()方法,我也试过,用DataGrid.FindControl和e.Item.FindControl()取不到值
如果,模版列中的控件设为Input   html控件,值赋给input的Value则可以取到值,呵呵,郁闷了一天,通过跟踪e.Item.DataItem终于找到
一个不错的方法;就是用e.Item.DataItem对象
如下:
   DataRowView drv = e.Item.DataItem as DataRowView;   
 
  drv.ItemArrary就是当前行的所有绑定列的值,用Drv.ItemArrary[0]。。。。就可以取到
  还有drv.Row["绑定的列名"],这个方法可以取得本行的所有已知绑定列的值,无论是绑定列还是模版列

呵呵,高兴之余,特此共享
 


Html页面中的模版列如下:

< asp:datagrid id = " dgShowOther "  runat = " server "  Width = " 522px "  Height = " 90px "  AllowPaging = " True "  AutoGenerateColumns = " False "
       Font
- Size = " 14px "  PageSize = " 9 " >
       
< HeaderStyle Font - Bold = " True "  Wrap = " False "  HorizontalAlign = " Center "  VerticalAlign = " Middle " ></ HeaderStyle >
       
< Columns >
        
< asp:BoundColumn Visible = " False "  DataField = " Code "  HeaderText = " Code " >
         
< HeaderStyle Width = " 28px " ></ HeaderStyle >
        
</ asp:BoundColumn >
        
< asp:TemplateColumn HeaderText = " 显示信息 " >
         
< HeaderStyle Width = " 500px " ></ HeaderStyle >
         
< ItemTemplate >
          
< asp:Label ID = " lbl1 " >
           
< B >
            
<% # DataBinder.Eval(Container.DataItem, " Name " ) %>
           
</ B >
          
</ asp:Label >< br >
          
& nbsp; & nbsp;
          
< asp:Label ID = " lbl2 "  Runat = " server " >
           
<% # DataBinder.Eval(Container.DataItem, " Brief " ) %>
          
</ asp:Label >
         
</ ItemTemplate >
        
</ asp:TemplateColumn >
       
</ Columns >
       
< PagerStyle VerticalAlign = " Middle "  Font - Bold = " True "  HorizontalAlign = " Center "  Mode = " NumericPages " ></ PagerStyle >
      
</ asp:datagrid >






ASP.NET的.CS页面中的DataGrid数据绑定方法:

private   void  dgShowOther_ItemDataBound( object  sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  

   
//从e.Item.DataItem 取得本行绑定的值
   DataRowView drv = e.Item.DataItem as DataRowView;   

   
//点击表格打开
   if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   
{
                e.Item.Attributes.Add(
"OnClick""ClickEvent('bhqsr.aspx?name='+'"+tabname+"'+'&Code='+'"+e.Item.Cells[0].Text+"'+'&fname='+'"+drv.Row["Name"]+"')");    
   }

   
   
//鼠标移动到每项时颜色交替效果
   if (e.Item.ItemType!=ListItemType.Header)
   

    e.Item.Attributes.Add(
"OnMouseOut""this.style.backgroundColor='Transparent';this.style.color='Black'");
    e.Item.Attributes.Add(
"OnMouseOver""this.style.backgroundColor='#cacee1';this.style.color='Blue'");
   }


   
//鼠标的形状为小手
   e.Item.Attributes["style"= "Cursor:hand";  
  
  }

你可能感兴趣的:(Data)