.NET基礎之DataList控制元件
主要屬性:
RepeatDirection:項的佈局方向。
RepeatColumns:該佈局的列的數目,預設為0.即不限制。
使用 DataList 控制元件顯示模板定義的資料繫結列表。DataList 控制元件支援選擇和編輯。 DataList 控制元件的內容可以通過使用模板操控。下表列出了支援的模板。
ItemTemplate為預設模版,如果繫結了資料,則在該模版中編輯顯示專案。
模板名稱
說明
AlternatingItemTemplate
如果已定義,則為 DataList 中的交替項提供內容和佈局。如果未定義,則使用 ItemTemplate。
EditItemTemplate
如果已定義,則為 DataList 中當前編輯的項提供內容和佈局。如果未定義,則使用 ItemTemplate。
FooterTemplate
如果已定義,則為 DataList 的腳註部分提供內容和佈局。如果未定義,將不顯示腳註部分。
HeaderTemplate
如果已定義,則為 DataList 的頁首節提供內容和佈局。如果未定義,將不顯示頁首節。
ItemTemplate
為 DataList 中的項提供內容和佈局所要求的模板。
SelectedItemTemplate
如果已定義,則為 DataList 中當前選定項提供內容和佈局。如果未定義,則使用 ItemTemplate。
SeparatorTemplate
如果已定義,則為 DataList 中各項之間的分隔符提供內容和佈局。如果未定義,將不顯示分隔符。
分頁顯示DataList控制元件中的資料
該分頁內碼表適用於Repeater控制元件等其他資料類控制元件。頁面原始碼新增一個DataList控制元件(DataList1),在頁尾模版中新增翻頁控制相關按鈕。
Code
共
頁 當前為第
頁
cs程式碼:
Code
private PagedDataSource pds()
{
//此處為GridView1繫結資料庫
SqlConnection myConn = GetConnection();
myConn.Open();
string sqlStr = "select * from test";
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
PagedDataSource pds = new PagedDataSource();
//初始化一個PagedDataSource,允許控制元件分頁
pds.DataSource = myDs.Tables[0].DefaultView;
//將上面的ds轉換成標準資料檢視
pds.AllowPaging = true;
//允許分頁
pds.PageSize = 5;
//每頁大小為5
pds.CurrentPageIndex = Convert.ToInt32(Request.QueryString["page"]);
//設定當前頁
return pds;
//將處理完畢的pds物件發出去
}
protected void DataList1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (Request.QueryString["name"] == null)
{
if (e.Item.ItemType == ListItemType.Footer)
{//判斷當前項是頁尾模板
int n = pds().PageCount;//將分頁總數賦給變數n
int i = pds().CurrentPageIndex;//將當前分頁碼賦給i
Label lblpc = (Label)e.Item.FindControl("lblpc");
lblpc.Text = n.ToString();
//找到lblpc這個Label,將總頁碼賦給他
Label lblp = (Label)e.Item.FindControl("lblp");
lblp.Text = Convert.ToString(pds().CurrentPageIndex + 1);
//找到lblp這個Label,將當前頁碼賦給他,但是注意,因為頁碼從0開始,這裡要直觀的話就得加1
HyperLink hlfir = (HyperLink)e.Item.FindControl("hlfir");
//這裡調整為自己網頁需要到的連線
hlfir.NavigateUrl = "?Type=" + Server.UrlEncode(Request.QueryString["Type"]) + "&page=0";
HyperLink hlla = (HyperLink)e.Item.FindControl("hlla");
hlla.NavigateUrl = "?Type=" + Server.UrlEncode(Request.QueryString["Type"]) + "&page=" + Convert.ToInt32(n - 1);
//找到表示最前頁和末頁的Label,為他們的NavigateUrl屬性賦為第0頁和最大頁碼減1
HyperLink hlp = (HyperLink)e.Item.FindControl("hlp");
HyperLink hln = (HyperLink)e.Item.FindControl("hln");
//找到表示上頁和下頁這兩個控制元件
if (i <= 0)
{//如果當前頁已經是第0頁
hlp.Enabled = false;
hlfir.Enabled = false;
hln.Enabled = true;
}
else
{
hlp.NavigateUrl = "?Type=" + Server.UrlEncode(Request.QueryString["Type"]) + "&page=" + Convert.ToInt32(i - 1);
}
if (i > n - 2)
{//如果當前項已經是最末頁
hln.Enabled = false;
hlla.Enabled = false;
hlp.Enabled = true;
}
else
{
hln.NavigateUrl = "?Type=" + Server.UrlEncode(Request.QueryString["Type"]) + "&page=" + Convert.ToInt32(i + 1);
}
}
}
}
顯示、編輯、更新資料
在DataList模版中新增LinkButton控制元件,併為其繫結資料,設定CommandName屬性和Click事件來實現對資料的顯示、編輯、更新、取消。在DataList中CommandName接受預設值為:Edit、Delete、Update、Cancel。如果值不為上述4種,則在ItemCommand中自行定義。
在頁面原始碼中新增DataList控制元件(DataList1),設定了ItemTemplate、EditItemTemplate、SelectedItemTemplate三種模版,分別對應預設顯示模版,編輯模版和選擇模版。
Code
cs程式碼:
Code
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "select")
{
DataList1.SelectedIndex = e.Item.ItemIndex;
DataList1.DataBind();
}
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
DataList1.SelectedIndex = -1;
DataList1.DataBind();
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
//取得編輯行的關鍵欄位的值
string id = DataList1.DataKeys[e.Item.ItemIndex].ToString();
//取得文字框中輸入的內容
string name = ((TextBox)e.Item.FindControl("TextBox_name")).Text;
//更新資料庫
string sql = "update test set name='" + name + "'";
string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection myConn = new SqlConnection(myStr);
myConn.Open();
string sqlStr = "select * from test";
SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
myCmd.ExecuteNonQuery();
myCmd.Dispose();
myConn.Close();
//取消編輯狀態
DataList1.SelectedIndex = -1;
DataList1.DataBind();
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.SelectedIndex = e.Item.ItemIndex;
DataList1.DataBind();
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-604085/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- .NET基礎之GridView控制元件View控制元件
- asp.net DataList控制元件分頁程式碼ASP.NET控制元件
- 【.net基礎】--DropDownList控制元件:兩級聯動控制元件
- .NET基礎之三個導航控制元件控制元件
- ASP.NET動態網站開發培訓-14.DataList控制元件(一)ASP.NET網站控制元件
- ASP.NET動態網站開發培訓-15.DataList控制元件(二)ASP.NET網站控制元件
- ASP.NET動態網站開發培訓-16.DataList控制元件(三)ASP.NET網站控制元件
- .NET基礎之資料繫結
- DataList控制元件也玩分頁-轉貼 (轉)控制元件
- flutter初體驗之基礎控制元件知識Flutter控制元件
- Android自定義控制元件系列之基礎篇Android控制元件
- 在repeater、datalist控制元件中使用分頁功能 (轉)控制元件
- 基礎控制元件詳解控制元件
- .NET Core基礎篇之:依賴注入DependencyInjection依賴注入
- WIN32 控制元件基礎Win32控制元件
- QML::自繪基礎控制元件控制元件
- AspNetPager與DataList結合實現分頁
- 前端基礎之jQuery基礎前端jQuery
- .NET Core基礎篇之:配置檔案讀取
- .NET 6 亮點之工作負載,它是統一 .NET 的基礎負載
- docker network基礎Docker
- .NET Core基礎篇之:白話管道中介軟體
- Asp.NetCore之AutoMapper基礎篇ASP.NETNetCoreAPP
- VS2005入門之Repeater、DataList
- Datalist巢狀巢狀
- 【Vim】基礎之基礎——指尖的舞蹈
- Javascript基礎之-thisJavaScript
- 類之基礎
- 【.net基礎】--.NET、winform、Asp.Net區別ORMASP.NET
- Flutter第3天--基礎控制元件(上)Flutter控制元件
- .net 開源模板引擎jntemplate 教程:基礎篇之語法
- 容器編排系統之Kubernetes基礎入門
- 【記】《.net之美》之讀書筆記(一) C#語言基礎筆記C#
- Kubernetes API 基礎API
- .net core整合JWT(基礎)JWT
- 【.net基礎】--SQLHelper重構SQL
- 【.net基礎】--初識StructStruct
- Golang 基礎之基礎語法梳理 (三)Golang