2011-08-06 16 views
0

編集ボタンをクリックすると、最初の行がドロップダウンされた動的グリッドビューを作成したいと思います。私はどのように始めるべきかについては何も考えていません。あなたは助けてください。私はいくつかのアーティキュラを見て、私たちが達成できるInstantiateInメソッドを使って見つけました。ドロップダウンで動的グリッドを作成

public class CreateItemTemplate : ITemplate 
    { 
     //Field to store the ListItemType value 
     private ListItemType myListItemType; 

     public CreateItemTemplate(ListItemType item) 
     { 
      myListItemType = item; 
     } 

     public void InstantiateIn(System.Web.UI.Control container) 
     { 
      //Code to create the ItemTemplate and its field. 
      if (myListItemType == ListItemType.Item) 
      { 
       TextBox txtCashCheque = new TextBox(); 
       container.Controls.Add(txtCashCheque); 
      } 
     } 
    } 
+0

これはページ上のグリッドの単一インスタンス用ですか、再利用可能なコントロールを作成する? –

+0

単一インスタンスの場合 – premg

答えて

0

これを1ページに表示する場合は、サーバーコントロールを作成しないでください。

グリッドのTemplateFieldを使用します。

注:AutoGenerateColumns = trueを使用している場合、グリッドマークアップに列を追加するだけです。最初に追加されます。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"> 
    <Columns> 
    <asp:TemplateField> 
    <ItemTemplate> 
    <asp:DropDownList id="someId" runat="server"> 
     <asp:ListItem Text="One" /> 
        <asp:ListItem Text="twO" /> 
     </asp:DropDownList> 
    </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
    </asp:GridView> 

このドロップダウンで何をしたいかについての詳細情報を提供する必要があります(デフォルト値が必要ですか?)。 必要に応じて、これをマークアップで行うことができます。また、グリッドイベントを使用する必要があります。

  • ブライアン UPDATE:あなたはグリッド

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" 
         onrowcreated="GridView1_RowCreated"> 
    

    にonrowcreated = "GridView1_RowCreated" を設定し、背後にあるあなたのコードでこれを行う場合は追加イベントハンドラ

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      var dropdown = e.Row.FindControl("someId") as DropDownList; 
      //dropdown.DataSource= <>; bind it 
      //dropdown.SelectedValue =<>";/set value how you would 
     } 
    } 

作成したドロップダウン広告を操作できます。 コントロールが終了できない場合は、各セルを調べます。e.Row.Cells [[index]] FindControl( "" someId "")

+0

この場合、列全体が右にドロップされますか?私はAutoGenerateColumns = trueを使用しています。そのグリッドだけがデータテーブルデータ – premg

+0

で設定されます。この場合、ドロップダウンリストの新しい列が追加されます。イベントハンドラのサンプルを追加する –

関連する問題