2014-12-01 4 views
0

У меня есть элемент управления ретранслятора и флажок в каждой строке. В событии клика я хочу получить элементы данных для этой строки. Я пробовал следующее, но элементы данных в Repeater Item всегда пусты.Получить данные строки ретранслятора через флажок

protected void CheckChanged(object sender, EventArgs e) 
    { 
     string county = string.Empty; 
     string country = string.Empty; 
     string postcode = string.Empty; 
     string posttown = string.Empty; 

     var item = ((CheckBox) sender).Parent as RepeaterItem; 

     if (item != null) 
     { 
      if (item.ItemType == ListItemType.Item) 
      { 
       System.Data.DataRowView drv = (System.Data.DataRowView)(item.DataItem); 
       county = drv.Row["county"].ToString(); 
       country = drv.Row["country"].ToString(); 
       postcode = drv.Row["postcode"].ToString(); 
       posttown = drv.Row["posttown"].ToString(); 
      } 
     } 
    } 


<asp:Repeater ID="Repeater1" runat="server"> 
    <HeaderTemplate> 
    <table border="1" width="100%" > 
    <tr> 
    <th>Select</th> 
    <th>Country</th> 
    <th>County</th> 
    <th>CSS Database Code</th> 
    <th>Postcode</th> 
    <th>Town</th> 
    </tr> 
    </HeaderTemplate> 
    <Itemtemplate> 
     <tr> 
      <td><asp:CheckBox ID="selectAddress" runat="server" OnCheckedChanged="CheckChanged" AutoPostBack="true"/></td> 
      <td><%# Eval("county")%> 
      <td><%# Eval("country")%></td> 
      <td><%# Eval("cssDatabaseCode")%></td> 
      <td><%# Eval("postcode")%><br /></td> 
      <td><%# Eval("postTown")%><br /></td> 
     </tr> 
    </Itemtemplate> 
    <FooterTemplate> 
    </table> 
    </FooterTemplate> 
    </asp:Repeater> 

ответ

1

попробовать это:

Если CheckBox находится внутри Repeater Тогда

var chk = (CheckBox)sender; 
var item = (RepeaterItem)chk.NamingContainer; 

if (item.ItemType == ListItemType.Item) 
{ 
//find your items here 
} 

Здесь Вы можете получить RepeaterItem путем литья CheckBox «ы NamingContainer. Затем вы можете использовать FindControl, чтобы получить ссылку на другие органы управления внутри. Repeater

+0

привет спасибо за ответ. Элемент данных в элементе ретранслятора по-прежнему равен нулю. – chrisblue13

+0

Пожалуйста, покажите свой .aspx код –

+0

Я изменил код выше, чтобы показать код aspx thanks – chrisblue13

Смежные вопросы