用DataGrid做数据绑定的时候,如显示性别等,数据库里放的是对应的0或1。在DataGrid里我们一般需要显示的是男或女,而不是0或1,如何实现呢?当然,在数据库查询的时候就可以直接使用case去做,那么如果查询出来是0/1这种情况,怎么在DataGrid把这个数字转换成男/女显示呢?
在aspx页面里对应的是这样的:
 <asp:BoundColumn DataField="sex" HeaderText="sex" Visible="False">
                    <asp:BoundColumn DataField="sex" HeaderText="sex" Visible="False">
 <ItemStyle Width="100px"></ItemStyle>
                        <ItemStyle Width="100px"></ItemStyle>
 </asp:BoundColumn>
                    </asp:BoundColumn>
 <asp:TemplateColumn HeaderText="性别" ItemStyle-Width="100">
                    <asp:TemplateColumn HeaderText="性别" ItemStyle-Width="100">
 <ItemTemplate>
                        <ItemTemplate>
 <asp:Label id="lblSex" Runat="server"></asp:Label>
                            <asp:Label id="lblSex" Runat="server"></asp:Label>
 </ItemTemplate>
                        </ItemTemplate>
 </asp:TemplateColumn>
                    </asp:TemplateColumn>
在DataGrid的ItemDataBound方法里这样写:
 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 {
        {
 Label label=(Label)(e.Item.FindControl("lblSex"));
            Label label=(Label)(e.Item.FindControl("lblSex"));
 if(e.Item.Cells[0].Text=="0")
            if(e.Item.Cells[0].Text=="0")
 {
            {
 label.Text="女";
                label.Text="女";
 }
            }
 if(e.Item.Cells[0].Text=="1")
            if(e.Item.Cells[0].Text=="1")
 {
            {
 label.Text="男";
                label.Text="男";
 }
            }
 }
        }
在aspx页面里对应的是这样的:
 <asp:BoundColumn DataField="sex" HeaderText="sex" Visible="False">
                    <asp:BoundColumn DataField="sex" HeaderText="sex" Visible="False"> <ItemStyle Width="100px"></ItemStyle>
                        <ItemStyle Width="100px"></ItemStyle> </asp:BoundColumn>
                    </asp:BoundColumn> <asp:TemplateColumn HeaderText="性别" ItemStyle-Width="100">
                    <asp:TemplateColumn HeaderText="性别" ItemStyle-Width="100"> <ItemTemplate>
                        <ItemTemplate> <asp:Label id="lblSex" Runat="server"></asp:Label>
                            <asp:Label id="lblSex" Runat="server"></asp:Label> </ItemTemplate>
                        </ItemTemplate> </asp:TemplateColumn>
                    </asp:TemplateColumn>在DataGrid的ItemDataBound方法里这样写:
 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
        { Label label=(Label)(e.Item.FindControl("lblSex"));
            Label label=(Label)(e.Item.FindControl("lblSex")); if(e.Item.Cells[0].Text=="0")
            if(e.Item.Cells[0].Text=="0") {
            { label.Text="女";
                label.Text="女"; }
            } if(e.Item.Cells[0].Text=="1")
            if(e.Item.Cells[0].Text=="1") {
            { label.Text="男";
                label.Text="男"; }
            } }
        } 
                    
                     
                    
                 
                    
                 
 
         
        
 
             
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号