2016-10-24 14 views
0

私はWebフォームを持って表示されていないと私は、このようPage_LoadLinkButtonを追加しました:のLinkBut​​tonのテキストが

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")をテストしましたが、正常に動作しませんでした。

この問題を解決する方法はありますか?

ありがとうございました。一緒にこれらの2行を使用して

+0

をparentlnkするコントローラとして追加しています。これはあなたの問題を解決するはずです.. –

+0

私はすべての属性を定義する必要はありません。子リンクは正しく動作しますが、親リンクのように定義しました。 –

+0

私があなたが定義しているものだけを意味していました。私が意味することは、プロパティが設定された後にのみ、コントロールを追加することです。 –

答えて

0

があなたの問題である

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

あなたがparentlnkにコントロールを追加するとき、それはあなたがテキストに設定されたものは何でも削除させていただきます。あなたが何をする必要があるか

はLabelクラスを作成し、そのすべての属性が、その後セット&でコントロールコレクションに追加するには、コントロールを作成

+0

お返事ありがとうございます。私のシナリオで 'parentlnk.Text'が' parentlnk.Controls.Add(childul) 'によって表示されないと仮定すれば、私は決して' parentlnk.Text'を設定することはできません。しかし、私は '(LinkBut​​ton)pnl1.FindControl(parentlnk.ID))で設定しました。Text ="親テキスト ";' –

+0

あなたは完全に理解できませんでした。私の答えは機能しましたか? – Kahbazi

+0

私は 'parentlnk.Controls.Add(childul)'を 'parentli.Controls.Add(childul)'に置き換えてこの問題を解決しました。私はなぜ 'parentlnk.Text'を' FindControl'で設定できるのか探していますが、 'parentlnk.Text ="で設定することはできません。親リンク "+ i.ToString();' ?? –

関連する問題