看了這個控件,才發覺我的控件只是個嬰兒
https://files.cnblogs.com/invinboy/DotNetGrid.rar,兄弟們可以下載這個用.可以去看看這個控件的功能
http://invinboy.cnblogs.com/archive/2006/05/06/DotNetGrid.html.
參考別人的源碼,我寫了平生第一個DataGrid控件,不要笑我,有用的上的兄弟們儘管用,我調適過了,使用正常.以後我努力的自創出其他的控件,歡迎關注...
/Files/robin0925/DataGrid_itec.rar調用方法:
1.将控件拖到Web Page , 設置分頁屬性
2.代碼中
DataGrid_itec.iTECDataGrid.DT = ds.Tables[0]; ***傳數據到Server Control
ITECDataGrid1.DataSource = ds.Tables[0];
ITECDataGrid1.DataBind(); ***Bind數據
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
![](/Images/OutliningIndicators/None.gif)
namespace DataGrid_itec
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// Summary description for iTECDataGrid.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:iTECDataGrid runat=server></{0}:iTECDataGrid>")]
public class iTECDataGrid : System.Web.UI.WebControls.DataGrid
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
Define#region Define
//private string text;
public System.Web.UI.WebControls.Button bt = new Button();
private TextBox tb = new TextBox();
private System.Web.UI.Page pg = new Page();
![](/Images/OutliningIndicators/InBlock.gif)
private static DataTable dt;
private LinkButton PrevPage = new LinkButton();
private LinkButton NextPage = new LinkButton();
![](/Images/OutliningIndicators/InBlock.gif)
private DropDownList ddl = new DropDownList();
private Label lbend=new Label();
private Label lbtag=new Label();
private Label lbddls=new Label();
private Label lbddle=new Label();
![](/Images/OutliningIndicators/InBlock.gif)
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
DisplayProtery#region DisplayProtery
public int CurrentIndex
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.CurrentPageIndex = value;
}
catch
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{}
}
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return this.CurrentPageIndex;
}
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
Proterty#region Proterty
[Bindable(true),
Category("Appearance"),
DefaultValue(""),
DescriptionAttribute("Session's name,Session used in BindData,and it must be DataView type")
]
![](/Images/OutliningIndicators/InBlock.gif)
public static DataTable DT
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return dt;
}
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
dt = value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
[Bindable(true),
Category("Appearance"),
DefaultValue("")
]
![](/Images/OutliningIndicators/InBlock.gif)
public string TT
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return this.ViewState["sort"].ToString();
}
catch
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.ViewState["sort"] = "asc";
return this.ViewState["sort"].ToString();
}
}
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.ViewState["sort"] = value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 將此控件呈現給指定的輸出參數
/// </summary>
/// <param name="e">要寫出到的HTML編寫器</param>
protected override void OnItemCreated(DataGridItemEventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(e.Item.ItemType==ListItemType.Pager)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
e.Item.Cells[0].Controls.Clear();
creatControl(e.Item.Cells[0]);
}
}
![](/Images/OutliningIndicators/InBlock.gif)
protected override void OnItemCommand(DataGridCommandEventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
string strCommandName = e.CommandName;
if(e.CommandName==null)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return ;
}
strCommandName = string.IsInterned(strCommandName);
switch(e.CommandName)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
case "PrevPage":
PrevPage_click(null,null);
break;
case "NextPage":
NextPage_click(null,null);
break;
}
![](/Images/OutliningIndicators/InBlock.gif)
base.OnItemCommand(e);
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
InitDataGrid#region InitDataGrid
![](/Images/OutliningIndicators/InBlock.gif)
protected void creatControl(TableCell tc)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
creatPageCount(tc);
creatCount(tc);
creatPage(tc);
creatDDL(tc);
}
![](/Images/OutliningIndicators/InBlock.gif)
private void creatCount(TableCell tc)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
lbtag.Text = "每頁顯示紀錄數";
tb.Text = this.PageSize.ToString();
tb.Width=20;
bt.Width=40;
bt.Text = "提交";
bt.Click += new EventHandler(this.bt_click);
tc.Controls.Add(lbtag);
tc.Controls.Add(tb);
tc.Controls.Add(bt);
}
![](/Images/OutliningIndicators/InBlock.gif)
private void creatPageCount(TableCell tc)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
Label lb = new Label();
lb.Text="<P align=\"right\"> 共"+this.PageCount+"頁 第"+(this.CurrentPageIndex+1)+"頁 ";
tc.Controls.Add(lb);
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
private void creatPage(TableCell tc)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
PrevPage.Text="上一頁";
NextPage.Text="下一頁";
PrevPage.CommandName = "PrevPage";
NextPage.CommandName = "NextPage";
tc.Controls.Add(PrevPage);
tc.Controls.Add(NextPage);
}
![](/Images/OutliningIndicators/InBlock.gif)
private void creatDDL(TableCell tc)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
lbend.Text="頁</p>";
lbddls.Text=" 跳轉到第";
ddl.AutoPostBack=true;
ddl.EnableViewState=true;
if (!this.Page.IsPostBack)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
ddl.Items.Clear();
initDDL();
}
ddl.SelectedIndexChanged+=new EventHandler(ddl_SelectedIndexChanged);
tc.Controls.Add(lbddls);
tc.Controls.Add(ddl);
tc.Controls.Add(lbend);
}
![](/Images/OutliningIndicators/InBlock.gif)
private void initDDL()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int count = this.PageCount;
ddl.Items.Clear();
for(int i=1;i<=count;i++)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
ddl.Items.Add(i.ToString());
}
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
InitEvent#region InitEvent
private void bt_click(object sender , EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.PageSize = Convert.ToInt32(tb.Text);
ddl.Items.Clear();
this.CurrentPageIndex = 0;
BindGrid();
initDDL();
}
![](/Images/OutliningIndicators/InBlock.gif)
private void PrevPage_click(object sender , EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int con = this.CurrentPageIndex;
if(CurrentPageIndex-1<0)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
CurrentPageIndex = con-1;
}
![](/Images/OutliningIndicators/InBlock.gif)
int tempIndex = CurrentPageIndex + 1;
ddl.SelectedValue = tempIndex.ToString();
BindGrid();
}
![](/Images/OutliningIndicators/InBlock.gif)
private void NextPage_click(object sender , EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int con = this.CurrentPageIndex;
if(CurrentPageIndex>=this.PageCount-1)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
}
else
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.CurrentPageIndex = con + 1 ;
}
int tempIndex = CurrentPageIndex + 1 ;
ddl.SelectedValue = tempIndex.ToString();
BindGrid();
}
![](/Images/OutliningIndicators/InBlock.gif)
private void ddl_SelectedIndexChanged(object sender , EventArgs e)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int curri = Convert.ToInt32(ddl.SelectedValue) - 1;
this.CurrentPageIndex = curri;
BindGrid();
}
![](/Images/OutliningIndicators/InBlock.gif)
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
GridFunction#region GridFunction
![](/Images/OutliningIndicators/InBlock.gif)
private void BindGrid()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
this.DataSource = DT;
this.DataBind();
}
catch(Exception ex)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
SaveLog(ex.ToString());
}
}
![](/Images/OutliningIndicators/InBlock.gif)
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
Util#region Util
private void SaveLog(string strLog)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
string strPath="";
strPath = @"D:";
strPath += @"\iTecDataGridLog.txt";
System.IO.FileStream fs = new System.IO.FileStream(strPath,System.IO.FileMode.OpenOrCreate,System.IO.FileAccess.Write);
System.IO.StreamWriter sw = new System.IO.StreamWriter(fs);
sw.BaseStream.Seek(0,System.IO.SeekOrigin.End);
sw.WriteLine(strLog);
sw.Flush();
sw.Close();
fs.Close();
}
#endregion
![](/Images/OutliningIndicators/InBlock.gif)
}
}
![](/Images/OutliningIndicators/None.gif)