如何取得Repeater控件选择的项目

Repeater控件,每个item前有一个CheckBox,把选择的item列显出来。

 

这个演法中,可以看到选择之后,该行highlight,此功能可以参考这个链接:http://www.cnblogs.com/insus/articles/1443165.html

下面是Repeater控件Html,有两个地方需要注意的,就是CheckBox与Label,这个Label是随你需要获取的内容而变化喔。如你想获取Nickname,那你需要把绑定的的内容放在Label上。

Repeater & CheckBox
    <asp:Repeater ID="RepeaterEmailList" runat="server">
                                            
<HeaderTemplate>
                                                
<table border="1" cellpadding="1" cellspacing="0" width="96.5%">
                                                    
<tr>
                                                        
<td>
                                                        
&nbsp;
                                                        
</td>
                                                        
<td>
                                                            Nickname
                                                        
</td>
                                                        
<td>
                                                            Email
                                                        
</td>
                                                    
</tr>
                                            
</HeaderTemplate>
                                            
<ItemTemplate>
                                                
<tr style="height:10px; line-height:10px;">
                                                    
<td>
                                                         
<!--下面这个CheckBox的ID,注意喔,因为后台需要用到它-->
                                                        
<asp:CheckBox ID="CheckBox1" runat="server" />
                                                    
</td>
                                                    
<td>
                                                        
<%Eval("nickname")%>
                                                    
</td>
                                                    
<td>
                                                       
<!--下面这个Label的ID,注意喔,因为后台需要用到它-->
                                                        
<asp:Label ID="Label1" runat="server" Text=' <%# Eval("mail")%>'></asp:Label>
                                                    
</td>
                                                
</tr>
                                            
</ItemTemplate>
                                            
<FooterTemplate>
                                                
</table>
                                            
</FooterTemplate>
                                        
</asp:Repeater>

 

下面Insus.NET将会写一个方法,也许你的专案不止一个地方使用到,在需要的地方直接调用即可。

GetCheckBoxSelectedValue
private string GetCheckBoxSelectedValue(Repeater repeater, string checkBoxId,string labelId)
    {
        
string tempValue = string.Empty;

        
foreach (RepeaterItem item in repeater.Items)
        {
            
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
            {
                
if (item.FindControl(checkBoxId) != null && item.FindControl(labelId) != null)
                {
                    CheckBox cb 
= (CheckBox)item.FindControl(checkBoxId);
                    Label lbl 
= (Label)item.FindControl(labelId);

                    
if (cb.Checked)
                    {
                        tempValue 
= tempValue + ";" + lbl.Text;
                    }
                }              
            }
        }

        
if (tempValue.Length > 0)
        {
            tempValue 
= tempValue.Substring(2);
        }

        
return tempValue;
    }

  

posted @ 2011-09-07 13:42  Insus.NET  阅读(2777)  评论(2编辑  收藏  举报