爱上了你的夜里,我不知所措

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

不能总是写水文了。今天编datagrid,顺便贴点常用代码。下面是一段通用的设置分页的代码。myd是我们的datagrid实例。

分页代码:

        private void Grid_Change(object sender,System.Web.UI.WebControls.DataGridPageChangedEventArgs e) 
        {
            myd.CurrentPageIndex 
= e.NewPageIndex;
            Get_Data(); 
        }

动态显示代码:

private void OnItemDataBound(object sender,    System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            
if (e.Item.ItemType!=ListItemType.Header && e.Item.ItemType!=ListItemType.Footer) 
            {
                
object di = e.Item.DataItem;
                
int isRead = Convert.ToInt16(DataBinder.Eval(di, "Is_Read"));
                
if (isRead == 0 )
                {
                    e.Item.Cells[
5].Text = "尚未回复";
                    
//e.Item.ForeColor = System.Drawing.Color.Red;  
                } 
                
else if ( isRead ==1)
                {
                    e.Item.Cells[
5].Text = "已经回复";
                }
            }

        }


然后要这样设置

private void InitializeComponent()
        {
            
this.myd.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.Grid_Change);
            
this.myd.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.OnItemDataBound);
            
this.Load += new System.EventHandler(this.Page_Load);

        }

总结一下:这段代码是用在User Control里的。在Web Control里,我们用CreateChildControl的方法Create一个DataGrid,而这种利用DataGrid自带的分页机制是不能用在Web Control里的,引用Web Control时必然需要一个aspx页,这个aspx页的Page_Load机制,及Post_Back等机制,导致触发事件后,无法保存上一个状态。在Web Control里利用自带分页功能的方法还有待研究。
posted on 2005-10-06 19:48  Airship  阅读(366)  评论(0)    收藏  举报