2016-12-07 4 views
2

В моем проекте мне нужно создать текстовое поле объекта Repeater. Затем в каждое текстовое поле будет применено событие TextChanged, чтобы сделать другого персонала.Aspe.Net Repeater Как найти другой элемент управления в событии TextBox «TextChanged»

Структура элемента повторителя:

repeater item: 
textbox.id = url 
Label.id = webTitle 

Вопрос заключается в том, как я могу изменить свой label.text с помощью url_TextChanged события?

Полный код:

 //To create reperater item 
     repeater.DataSource = myObj; 
     repeater.DataBind(); 
     foreach (RepeaterItem rptItm in repeater.Items) 
     { 
      CalendarObj item = calObj[rptItm.ItemIndex]; 
      rptItm.Controls.Add(new LiteralControl("Enter your URL")); 
      TextBox url = new TextBox(); 
      url.ID = "url"; 
      url.AutoPostBack = true; 
      url.TextChanged += new EventHandler(urlTextBox_TextChanged); 
      url.Text = item.listURl; 
      rptItm.Controls.Add(url); 
      rptItm.Controls.Add(new LiteralControl("<br/>")); 

      rptItm.Controls.Add(new LiteralControl("web Title")); 
      Label title = new Label(); 
      title.ID = "title"; 
      title.Text = ""; 
      rptItm.Controls.Add(title); 
      rptItm.Controls.Add(new LiteralControl("<br/>")); 
      rptItm.Controls.Add(new LiteralControl("<br/>")); 

     } 
    // Event 

    protected void urlTextBox_TextChanged(object sender, EventArgs e) 
    { 
     TextBox textBox = sender as TextBox; 
     if (textBox != null) 
     { 
      string theText = textBox.Text; 
      //How? textbox.parent.title.text = theText? 
     } 

    } 

ответ

1

Вы можете использовать NamingContainer в TextBox, а затем FindControl метод, чтобы найти ярлык по идентификатору, как показано ниже,

protected void urlTextBox_TextChanged(object sender, EventArgs e) 
    { 
     TextBox textBox = sender as TextBox; 
     if (textBox != null) 
     { 
      string theText = textBox.Text; 
      var item = (RepeaterItem) textBox.NamingContainer; 
      if(item != null) { 
       Label titleLabel = (Label)item.FindControl("title"); 
       if(titleLabel != null) { 
        titleLabel.Text = theText; 
       } 
      } 
     } 

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