估计要分两部:
一部分UI部分:在一个div里面可以写个repeater服务器控件,用来横排显示需要的数据;<asp:Repeater id="" runnat="servece" ....................>
首先,repeater这个控件,有head,items,foot三个部分,不一定全用。
然后,布局:headtemplate里面写上显示的字段栏,<th align=字段文字位置,居中是center class=样式>字段名称</th>
若干字段后,就改写显示数据部分,也就是itemtemplate,这个数据段书写类似head,但有个地方要注意就是<%#Eval('xxxx')%>这部分, 最好写这个数据字段的列要对应headtemplate的字段列,可以这样写<td align=center ><asp:label id="xxx" runate ="service" Text='<%#Eval("xianshiID")%>'></asp:label></td>,这里再次说明一下,这个Eval部分是执行在后台,后台给ui显示赋值来着。
举例:<td align="center"><asp:Label ID="Value1" runat="server" Text='<%#Eval("Value") %>'></asp:Label> </td>
如果没有数据,可以在footertemplate中添加一行visible='<%#Repeate.Items.Count==0 %>'属性,然后添加<tr><td align=xx>没有数据</td></tr>;
二部分后台部分:这就是Repeater控件UI页显示,前面的主要部分,下面说说后台要做的
在后台,你需要把数据跟Repeater控件绑定才能显示数据,我们可以按下面来做:
A:在页面加载的时候,实现RepeaterName.source = 一个datatable类型的返回(写一个返回函数最好),然后是 RepeaterNmae.DataBind();
B:
B1: 在这个datatable类型的返回中,我们首先要写一个datatable类型的函数实现栏目的显示字段,
DataTable One = new DataTable();
One.Columns.Add("xianshiID");//注意与页面Eval中的ID对其
return One;//暂定为返回给TableStart
B2: 然后再这个返回的DataTable容器中写,然后
如果数据比较多,可以循环写:DataRow ro = TableStart.newRow();//这里就新产生了datatabel类型的One的 一行,对应页面上的一列,
然后,我们需要将数据库读出的一行数据填写到这个ro行里面,
ro[0] = 我数据读出来的一个数据;
B3: 然后,必须是TableStart来用添加到里面,TableStart.add.Row(ro);
最后经过循环,tablestart已经将所要显示的数据都存起来了,然后return回去,就是一个datatable类型的返 回,这个就是绑定给Repeater的数据,数据源;
三部分操作部分:
A:关于Repeater的数据删除操作,首先要在Ui中写上删除按钮
在head,itemtemplate,foot三部分的itemtemplate部分最后添加一列
<td align=xxx >
<asp:linkbutton id=xxx Text="删除" runate="server" CommanName="nameYouself" CommanAugumnet='关键字,一般用<%#Eval("ID")+"&"+Eval("ID2")%>来写,主要是后台跟踪传递而已' >
</asp:linkbutton>
</td>
B:
在后台用RepeaterName_ItemsCommand(object source,RepeaterCommandEventArgs e)
{
try
{
if (e.CommandName == "Link")
{
string[] key = e.CommandArgument.ToString().Split('&');
xxxxxxxxxx其它数据操作,删除操作;
}
}
catch { }
}
上面的代码生成是双击repeater产生的,也即是<asp:Repeater ID="RepeaterShow" runat="server" ..........
onitemcommand="RepeaterShow_ItemCommand">也就是repeater的onitemcommand事件;