2010-12-10 15 views
0

ItemTemplate内の既存のパネル/ラベルのテスト値(Column1を使用)に基づいて、同じItemTemplate(Column2を表示)内に別のパネル/ラベルを追加します。パネルまたはラベルコントロールをデータグリッドに動的に追加する

これはカスタムコントロール(.ascx)内にあり、特定の値を持っているかどうかに基づいて、ある特定のもの(たとえば、別のパネル)の追加を制御したいとします。<asp:Panel>そうでない場合は、<asp:Panel>を作成したくない(実行時に<div>を生成しないでください)。はい、私は<asp:Panel> 内部

<asp:DataGrid><Columns><ItemTemplate> 

例生成する場合:私たちは期待通りに列2の値を取得していると仮定し、それが「0」ではない場合にのみ、私がいないいない場合、私は、この値をレンダリングしたいです与えられた<ItemTemplate>の中に余分なタグを作りたいと思っています。私はそれが別のタグに基づいてレンダリングされるときを制御します。

If(Column2!='0') 
//Adding some condition for Column1 ... 
    Create the `<div>` tag i.e Add the `<asp:Panel>` 

このコードはどのように呼び出す必要がありますか?

つまり、生成されたHTMLには場合によってはdiv/spanタグが追加され、他の場合に生成されるタグは使用しないでください。 これはJavascriptを避けることができます。

+0

どのようなフレームワークですか?ウィジェット?等?とにかく質問はどこにありますか? –

+0

これがasp.netの場合、答えはyesです。あなたは、より便利な答えを得るために、いくつかのコードを使って質問に言い換えて展開したいかもしれません。 – Kendrick

答えて

0

一つがた.ascx内の特定の場所でコントロールを配置する<asp:PlaceHolder>コントロールを使用することができ、言う: <asp:PlaceHolder id="placeHere" runat="server />、これは追加すべきかどうか、他の制御に基づいて判断します。 例:

If(Column1 condition) 
{ 
    Label addToGrid = new Label(); 
    addToGrid.Text = column1; 
    addToGrid.Visible = true; 
    placeHere.Controls.Add(addToGrid); 
} 
関連する問題