2015-01-26 3 views
0

Я хочу обработать событие dropdownlist (selectedindexchanged) для элемента достижения в репитере.Как создать выпадающий список событий в ретрансляторе (выбранное измененное событие)

меня каждую строку в повторителе: (текстовое поле, текстовое поле, DropDownList)

на основе DROPDOWNLIST значения, я хочу, чтобы скрыть и показать два других текстовых полей

Как я могу это сделать?

+0

Jquery ваш ответ. событие изменения выпадающего списка - это то, что вам нужно. Но вам нужно получить текстовые поля из той же строки, где выпадающее меню. Вы можете легко найти код jquery для этого. –

+0

Проблема с jQuery заключается в том, что она требует 'id'. Атрибут 'id' зарезервирован для .net, который автоматически присваивает его, что затрудняет получение элементов. –

+1

Вы также можете поместить класс в выпадающий список. Или вы можете использовать $ ('# <% = drp.ClientID%>') в jquery. Проблема с подходом на стороне сервера намного больше (обратная связь при каждом выборе) –

ответ

0
<asp:Repeater runat="server" ID="rep" > 
     <ItemTemplate> 
      <asp:DropDownList ID="drp" runat ="server" OnSelectedIndexChanged="drp_SelectedIndexChanged" AutoPostBack="true"> 
       <asp:ListItem Text ="aa"></asp:ListItem> 
       <asp:ListItem Text="bb"></asp:ListItem> 
      </asp:DropDownList> 
      <asp:TextBox ID="txtA" runat="server"></asp:TextBox> 
     </ItemTemplate> 
     </asp:Repeater> 

А в коде:

VB.NET:

Protected Sub drp_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) 
Dim drp As DropDownList = CType(sender, DropDownList) 
Dim itm As RepeaterItem = CType(drp.Parent, RepeaterItem) 

Dim txtA As TextBox = CType(itm.FindControl("txtA"), TextBox) 
If txtA <> Nothing And drp.SelectedValue ="aa" Then 
     'txtA.Text = "AAA"; 
    txtA.Visible = False 
End If End Sub 

ИЛИ C#:

protected void drp_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList drp = (DropDownList)sender; 
    RepeaterItem itm = (RepeaterItem)drp.Parent; 

    TextBox txtA = (TextBox)itm.FindControl("txtA"); 
    if (txtA != null && drp.SelectedValue =="aa") 
    { 
      //txtA.Text = "AAA"; 
     txtA.Visible = false; 
    } 

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