欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#控件之Repeater控件使用

程序员文章站 2024-01-02 23:44:28
歡迎大家來討論,修改,一定虛心接受。 1.為什麼使用Repeater控件? 關於把從數據庫讀取的數據綁定到前台頁面,我們可以使用DataGrid、DataGridView以及Repeater來佈局,三者均可以直接綁定DataTable中的字段,但是對於特殊的表格,如需要跨行或跨列顯示的數據,則需要重 ......

歡迎大家來討論,修改,一定虛心接受。

 

1.為什麼使用repeater控件?

  關於把從數據庫讀取的數據綁定到前台頁面,我們可以使用datagrid、datagridview以及repeater來佈局,三者均可以直接綁定datatable中的字段,但是對於特殊的表格,如需要跨行或跨列顯示的數據,則需要重畫一個table,然後再綁定數據。

2.repeater控件之好處

  我們可以*的定義table的表頭、表身和表尾。

3.repeater控件一些基礎設定

  例:以下例子展示了如何對repeater控件進行綁定,并實現在table中實現編輯和更新數據行的操作

html端代碼:

<asp:repeater runat="server" id="reportrepeater" onitemcommand="reportrepeater_itemcommand"
onitemdatabound="reportrepeater_itemdatabound">
<headertemplate>

<table>

<tr><th></th>

<th>用戶id</th>

<th>用戶名</th>

<th>籍貫</th>

<th>民族</th></tr>

</headertemplate>

<itemtemplate>

<asp:panel id="plitem" runat="server">

<tr><td><asp:imagebutton id="imginvedit" commandname="edit" tooltip="編輯" commandargument='<%#eval("userid")%>'

imageurl="../images/edit1.gif" runat="server" visible="false" />

<asp:imagebutton id="imginvdelete" commandname="delete" tooltip="刪除" commandargument='<%#eval("userid")%>'
imageurl="../images/delete.gif" runat="server" visible="false" /></td>

<td><%#eval("userid")%></td>

<td><%#eval("username")%></td>

<td><%#eval("birthplace")%></td>

<td><%eval("nationality")%></td><tr>

</asp:panel>

<asp:panel id="plitem" runat="server">

<tr><td><asp:imagebutton id="imginvupdate" commandname="update" tooltip="更新" commandargument='<%#eval("userid")%>'

imageurl="../images/update.gif" runat="server" visible="false" />

<asp:imagebutton id="imginvcancel" commandname="cancel" tooltip="取消" commandargument='<%#eval("userid")%>'
imageurl="../images/cancel.gif" runat="server" visible="false" /></td>

<td><%#eval("userid")%></td>

<td><%#eval("username")%></td>

<td><%#eval("birthplace")%></td>

<td><%eval("nationality")%></td><tr>

</asp:panel>

</itemtemplate>

<footertemplate>

</table>

</footertemplate>

c#後端代碼:

protected void page_load(object sender, eventargs e)
{

if(page.ispostback)

{

binddata();

}

}

 

protected void binddata()

{

string sql = "select * from user";

dal.dal dal = new dal.dal();

datatable dt = dal.executedataset(properties.settings.default.dbwf, sql).tables[0];

reportrepeater.datasource = dt;

reportrepeater.databind();

}

protected void reportrepeater_itemcommand(object source, repeatercommandeventargs e)

{

switch (e.commandname.trim().toupper())
{
case "edit":
{
id = e.commandargument.tostring();
break;
}
case "update":

{

//更新數據庫

break;

}

case "cancel":

{

id="";

break;

}

case "delete":

{

//從數據庫刪除

break;

}

//數據綁定

binddata();

}

protected void reportrepeater_itemdatabound(object sender, repeateritemeventargs e)//item綁定時可以在此做一些操作

{

if (e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem)//
{

system.data.datarowview record = (system.data.datarowview)e.item.dataitem;
string userid= record["userid"].tostring();
if (userid.equals(id))//當點擊不同的按鈕時對pannel控件進行隱藏和顯示,達到在table內編輯行的效果
{
((panel)e.item.findcontrol("plitem")).visible = false;
((panel)e.item.findcontrol("pledit")).visible = true;
}
else
{
((panel)e.item.findcontrol("plitem")).visible = true;
((panel)e.item.findcontrol("pledit")).visible = false;
}

}

}

上一篇:

下一篇: