不能总是写水文了。今天编datagrid,顺便贴点常用代码。下面是一段通用的设置分页的代码。myd是我们的datagrid实例。
分页代码:
private void Grid_Change(object sender,System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
myd.CurrentPageIndex = e.NewPageIndex;
Get_Data();
}
{
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 = "已经回复";
}
}
}
{
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);
}
{
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里利用自带分页功能的方法还有待研究。

浙公网安备 33010602011771号