2011-08-17 5 views
1

리피터에 몇 개의 데이터 바인딩 된 필드가있는 링크 버튼이 있습니다. 내가 어디 버튼을 onClientClick 데이터 바인딩 후 설정할 수 있지만 내가 누를 점점 계속 링크 단추를 액세스하려고 할 때 얻을 노력하고있어.리피터의 링크 버튼을 찾을 수 없습니다.

여기 리피터 및 컨트롤과 관련된 모든 질문을 살펴본 결과 알아 내지 못했습니다.

에서 .aspx

<asp:Repeater ID="DailyRepeater" OnItemCommand="DailyRepeater_ItemCommand" runat="server"> 
        <HeaderTemplate> 
         <tr> 
          <td class="coltitle"> 
           Time 
          </td> 
          <td class="coltitle"> 
           Activity 
          </td> 
          <td class="coltitle"> 
           Hours 
          </td> 
         </tr> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <tr class="evenrow"> 
          <td> 
           <%# Eval("StartTime","{0:HH:mm}") %>-<%# Eval("EndTime","{0:HH:mm}") %> 
          </td> 
          <td> 
           <%# Eval("Description") %> 
          </td> 
          <td> 
           <%# Eval("Hours","{0:0.0}") %> 
          </td> 
          <td> 
            <asp:LinkButton runat="server" CausesValidation="false" ID="editbutton" Text="Edit">Edit</asp:LinkButton> 
          </td> 
         </tr> 
        </ItemTemplate> 

.aspx.cs 내가 읽은 것을, 나는 RepeaterItemEventargs를 사용하여 버튼에 얻을 수 있었어야에서

protected void DailyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 
    { 
     LinkButton myButton = (LinkButton)e.Item.FindControl("editbutton"); 
     myButton.OnClientClick = (popupWindow.GetTargetPopupCode("URL"); 
    } 

. 그러나 나는 그것을 여기에서 발견 할 수 없다. 내가 생각한 또 다른 것은 이것이 발생했을 때 바인딩이 일어나지 않았다는 것이다. (이것은 데이터 바인딩 된 이벤트가 될 수 없다.)하지만 어떤 이유로 e가 다시 돌아오고있다 .Item에는 null의 dataItem이있다. itemIndex = -1 ...

저는 정말 혼란스러워하고 도움을 잃어 버렸습니다. 크게 감사하겠습니다.

감사합니다.

답변

5

당신이 아이템 유형을 경계하지 않은 것 같습니다. 일반적으로 머리글, 모든 항목 및 바닥 글을 실행합니다. 이 작업을 수행해야합니다

if(e.Item.ItemType == ItemType.Item || e.Item.ItemType == ItemType.AlternatingItem) 
{ 
     LinkButton myButton = (LinkButton)e.Item.FindControl("editbutton"); 
     myButton.OnClientClick = (popupWindow.GetTargetPopupCode("URL"); 
} 
+0

헉, 더 복잡한 응답에 대한 검색 시간 그리고 내가 아니었다 나온다 올바른 유형을 확인하는 중 ... 한숨. 감사! – Jabsy

0

왜이처럼 sender 개체의 속성을 설정하지 :

sender.OnClientClick = //whatever// 
+0

보낸 사람의 유형이 "개체"이고 OnClientClick 속성이 없습니다. – mandreko

관련 문제