asp.net 在repeater控件中加按钮

时间:2023-03-09 07:32:43
asp.net 在repeater控件中加按钮

在repeater中加入方法有两种方法:

第一种:是对repeater控件的行添加OnItemCommand事件,添加方法也是有两种

1.在设计页面中,选中repeater控件右击==>属性==>属性栏中的事件标签(闪电符号)==>双击ItemCommand

asp.net 在repeater控件中加按钮

2.在写代码,也是可以实现。

<asp:Repeater ID="rptDataList" runat="server"
onitemcommand="rptDataList_ItemCommand" >
<ItemTemplate>
<tr>
<td>
<asp:LinkButton ID="lbnCopy" runat="server" CommandArgument='<%#Eval("ConferenceNo") %>'  CommandName="copy" >複写</asp:LinkButton>
</td>
<td align="center">
<a href="#">
<%#Eval("ConferenceNo")%></a>
</td>
<td>
<%#Eval("ConferenceSts")%>
</td>
<td align="right">
<%#Eval("ConfStartTime")%>
</td>
<td>
<%#Eval("ConferenceName")%>
</td>
<td>
<%#Eval("CaseName")%>
</td>
<td>
<%#Eval("EstmAmount")%>
</td>
<td>
<%#Eval("HoldingMode")%>
</td>
<td align="center">
<%#Eval("RiskLevel")%>
</td>
<td align="center">
<%#Eval("SalesCategory")%>
</td>
<td>
<%#Eval("CustCd")%>
</td>
<td>
<%#Eval("CustName")%>
</td>
<td>
<%#Eval("ProductionDept")%>
</td>
<td>
<%#Eval("HoldingDept")%>
</td>
<td>
<%#Eval("ProjectNo")%>
</td>
<td>
<%#Eval("ProjectName")%>
</td>
<td>
<%#Eval("Role")%>
</td>
<td>
<%#Eval("VoteDeliberResult")%>
</td>
<td align="center">
<%#Eval("Vote")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>

现在是对repeater的行注册了事件,但是我们是要实现其内部按钮功能,还有就是如何判断我们要操作行,这里主要使用的是CommandArgument属性,设置CommandArgument绑定主键的字段,  CommandName主要用于区分此行执行的是哪个操作。页面代码如上,现在说说.cs的代码:

protected void rptDataList_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "copy")
{
string l_strConferenceNo = e.CommandArgument.ToString();
}
}

第二种:对按钮添加OnClick事件

<asp:Repeater ID="rptDataList" runat="server"  >
<ItemTemplate>
<tr>
<td>
<asp:LinkButton ID="lbnCopy" runat="server" OnClick="lbnCopy_Click" CommandArgument='<%#Eval("ConferenceNo") %>' CommandName="copy" >複写</asp:LinkButton>
</td>
<td align="center">
<a href="#">
<%#Eval("ConferenceNo")%></a>
</td>
<td>
<%#Eval("ConferenceSts")%>
</td>
<td align="right">
<%#Eval("ConfStartTime")%>
</td>
<td>
<%#Eval("ConferenceName")%>
</td>
<td>
<%#Eval("CaseName")%>
</td>
<td>
<%#Eval("EstmAmount")%>
</td>
<td>
<%#Eval("HoldingMode")%>
</td>
<td align="center">
<%#Eval("RiskLevel")%>
</td>
<td align="center">
<%#Eval("SalesCategory")%>
</td>
<td>
<%#Eval("CustCd")%>
</td>
<td>
<%#Eval("CustName")%>
</td>
<td>
<%#Eval("ProductionDept")%>
</td>
<td>
<%#Eval("HoldingDept")%>
</td>
<td>
<%#Eval("ProjectNo")%>
</td>
<td>
<%#Eval("ProjectName")%>
</td>
<td>
<%#Eval("Role")%>
</td>
<td>
<%#Eval("VoteDeliberResult")%>
</td>
<td align="center">
<%#Eval("Vote")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
protected void lbnCopy_Click(object sender, EventArgs e)
{
string l_strConferenceNo=((LinkButton)sender).CommandArgument.ToString();
}