需求说明:在DataGrid中显示手机短信过滤类型(手机号码,业务推广短信,帐户变动短信,节日祝福短信),表示是否向手机号码相应类型的短信。由于被过滤的短信类型可能会动态添加,因此绑定DataGrid时只能通过后台动态绑定,以便增加短信类型时不用修改aspx页面。下图是示例的显示效果,只要在获取数据时增加“节日祝福”列,页面不需要做任何修改,显示就由左图内容变成右图内容。
      DataGrid动态绑定模板列     DataGrid动态绑定模板列


      实现过程:下面用代码说明具体实现。
      1.aspx页面部分,代码很简单,在页面中放一个DataGrid就可以了。
DataGrid动态绑定模板列 <form id="form1" runat="server">
DataGrid动态绑定模板列        
<div>
DataGrid动态绑定模板列            
<asp:DataGrid ID="dgSmsFilters" Style="z-index: 101; left: 264px; position: absolute;
DataGrid动态绑定模板列                top: 152px"
 runat="server" Width="480px" Height="200px" AutoGenerateColumns="False"
DataGrid动态绑定模板列                BorderColor
="#3366CC" BorderStyle="None" BorderWidth="1px" BackColor="White"
DataGrid动态绑定模板列                CellPadding
="4">
DataGrid动态绑定模板列                
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
DataGrid动态绑定模板列                
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
DataGrid动态绑定模板列                
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
DataGrid动态绑定模板列                
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
DataGrid动态绑定模板列                
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages">
DataGrid动态绑定模板列                
</PagerStyle>
DataGrid动态绑定模板列            
</asp:DataGrid>
DataGrid动态绑定模板列        
</div>
DataGrid动态绑定模板列    
</form>


       2.aspx.cs后台代码部分,这部分的作用就是准备好数据,并绑定到DataGrid中。我们注意到给模板列赋值时实例化了ColumnTemplate类。这个类是我们自己定义的类,也是后台绑定模板列的核心所在,第三部分代码将演示这个类的实现。
DataGrid动态绑定模板列protected void Page_Load(object sender, EventArgs e)
            }


        3.ColumnTemplate类的实现。继承自ITemplate接口,并实现了接口方法InstantiateIn(),定义子控件和模板所属的 Control 对象。
DataGrid动态绑定模板列 //ColumnTemplate 从ITemplate继承。
DataGrid动态绑定模板列        
//InstantiateIn 定义子控件的属于谁
DataGrid动态绑定模板列
        public class ColumnTemplate:System.Web.UI.ITemplate
        }


      源代码下载地址: 点击下载完整示例程序 (示例路径:/WebControls/TemplateColumnDemo.aspx

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-21
  • 2021-09-13
  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2021-09-07
猜你喜欢
  • 2022-01-02
  • 2021-09-05
  • 2022-12-23
  • 2022-12-23
  • 2022-02-27
相关资源
相似解决方案