当前位置: 移动技术网 > IT编程>开发语言>.net > C#控件之Repeater控件使用

C#控件之Repeater控件使用

2018年09月06日  | 移动技术网IT编程  | 我要评论

宅腐资源站,wwe2014年8月1日,黑圣手精彩博客

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

 

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;
}

}

}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网