2012-11-07 5 views
2

사용자가 드롭 다운의 selectedIndex를 변경할 때 데이터베이스에서 일부 동작을 수행하고 싶습니다.리피터 내부에서 드롭 다운이 변경 될 때 이벤트를 발생시키는 방법

<td class="shop-item-qty"> 
<asp:DropDownList ID="qtyDropDownList" OnSelectedIndexChanged="changeCount" AutoPostBack="true" runat="server"/> 
<asp:HiddenField ID="ItemId" runat="server" Value='<%#Eval("GiftVoucher.ID") %>'/> 
</td> 

내가 원하는 건 changeCount 방법에 내 숨겨진 필드 값을 얻는 것입니다. 문제는이 코드가 Repeater 요소에 있기 때문에 직접 숨겨진 필드 값을 가져올 수 없다는 것입니다. 어떻게 그 기능을 수행 할 수 있습니까?

+3

척 노리스는 직접 정말 날 수 있습니다, 숨겨진 필드가 – Blachshma

답변

6
protected void qtyDropDownList_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     DropDownList control = (DropDownList)sender; 

     RepeaterItem rpItem = control.NamingContainer as RepeaterItem; 
     if (rpItem != null) 
     { 
     HiddenField hiddenField = ((HiddenField)rpItem.FindControl("ItemId"));  
     } 
} 
+0

감사 카지 값 얻을 수 있습니다. –

1

당신은 드롭 다운의 사용자 지정 특성에 GiftVoucher.ID 값을 바인딩하고에 HiddenField를 건너 뛸 수 있습니다 :

<asp:DropDownList runat="server" ID="qtyDropDownList" OnSelectedIndexChanged="changeCount" AutoPostBack="true" data-itemId='<%# Eval("ID") %>' />

protected void changeCount(object sender, EventArgs e) 
{ 
    var id = ((DropDownList)sender).Attributes["data-itemId"]; 
} 
+0

내 드롭 다운을 다른 데이터 소스에 바인드했기 때문에 Eval이 제 경우에는 작동하지 않습니다. 귀하의 답변에 감사드립니다. –

관련 문제