2016-10-24 2 views
0

У меня есть веб-форму, и я добавил LinkButton в Page_Load так:Текст LinkButton не отображается

protected void Page_Load(object sender, EventArgs e) 
     { 
      //Parent <ul> 
      HtmlGenericControl ul = new HtmlGenericControl("ul"); 
      pnl1.Controls.Add(ul); 
      for (int i = 1; i <= 3; i++) 
      { 
       HtmlGenericControl parentli = new HtmlGenericControl("li"); 
       LinkButton parentlnk = new LinkButton(); 
       parentli.Controls.Add(parentlnk); 
       parentlnk.ID = "lnkparent" + i.ToString(); 
       parentlnk.Text = "Parent link" + i.ToString(); 
       ul.Controls.Add(parentli);      

       //Child <ul> 
       HtmlGenericControl childul = new HtmlGenericControl("ul"); 
       parentlnk.Controls.Add(childul); 

       HtmlGenericControl childli = new HtmlGenericControl("li"); 
       childul.Controls.Add(childli); 

       LinkButton childlk = new LinkButton(); 
       childlk.ID = "lnkchild" + i.ToString(); 
       childlk.Text = "link_child" + i.ToString(); 
       childli.Controls.Add(childlk); 
      } 
     } 

Но Выход является:

link

Правильная страница должна быть например:

Correct link

Я тестировал parentlnk.Attributesa.add("Text","Parent link") или parentlnk.Attributesa.add("Value","Parent link"), но они не работали должным образом.

Есть ли решение этой проблемы?

Спасибо.

+0

создать элемент управления с установить все его атрибуты и затем добавить к коллекции элементов управления. это должно решить вашу проблему. –

+0

Мне не нужно определять все атрибуты. Детская ссылка работает правильно, но я определил ее как родительскую ссылку. –

+0

Я имел в виду только те, которые вы определяете. Я имею в виду добавить элемент управления только после того, как будут установлены свойства –

ответ

0

с помощью этих двух линий вместе ваша проблема

parentlnk.Text = "Parent link" + i.ToString(); 
parentlnk.Controls.Add(childul); 

когда вы добавляете элементы управления parentlnk, это удалит все, что вы установили в тексте.

то, что вам нужно сделать, это создать класс этикетки и добавить его в качестве контроллера для parentlnk

+0

Спасибо за ответ. Если мы предположим, что в моем сценарии 'parentlnk.Text' не отображается' parentlnk.Controls.Add (childul) ', я никогда не могу установить' parentlnk.Text'. Но я установил его через '((LinkButton) pnl1.FindControl (parentlnk.ID)). Text =« Родительский текст »;' –

+0

Я не понял вас полностью. мой ответ работал? – Kahbazi

+0

Я решил эту проблему, заменив 'parentlnk.Controls.Add (childul)' на 'parentli.Controls.Add (childul)'. Я ищу, почему я могу установить 'parentlnk.Text'' FindControl', но я не могу установить в 'parentlnk.Text =" Parent link "+ i.ToString();' ?? –

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