2012-02-12 14 views
0

私はC#とインターフェイスデザインについて質問があります。両親のC#動的入力リスト

番号:(テキストボックス)子供の// int型のみ

番号:(テーブルでなければなりません)// int型のみ

ユーザーが入力したとき、私は、次のようなインターフェイスを設計したいです親の数、例えば2 表には、ユーザーが無変更する場合、は、No.of両親の入力が未編集フィールドで

------------------------------- 
|No.Of Parents | No.Of Children| 
|--------------|---------------| 
|  1  | (input) | 
|--------------|---------------| 
|  2  | (input) | 
|--------------|---------------| 

を次のように入力するユーザーのための2行が表示されます。親の3に、それはテーブルの3行にする必要があります。

テーブルが 'GridView'で、2が追加されました 'templateField'。 No.of子供たちのために、)テーブルの行数がテキストボックス

2の入力に依存して表示する方法を)私が「ItemTemple」に「テキストボックス」を追加し、私は

1を知りません1行からn行までのテキストをテーブルに表示する方法

これはVisual Studio C#で可能ですか?どうもありがとうございました。

答えて

0

GridViewを使用しているので、私はASP.NETであり、WinFormsではないと仮定します。私はあなたが本当にあなたのページ上で直接行うことができますかカスタムUserControlを使用して、インターフェイスではないと思う。 C#での用語「インタフェース」は、特定の意味とその少し異なるがあります。

http://msdn.microsoft.com/en-us/library/87d83y5b(v=vs.80).aspx

あなただけ先に行くと、ページ上でそれを行うと仮定すると、あなたのNumberOfParentsテキストボックスTextChangedイベントのためのEventHandlerを追加する必要がありますあなたのコードビヘイビアのいくつかの単純なコードを使って行を追加し、gridviewをバインドします。あなたのASPXページでは、このような何か:

Number Of Parents: <asp:TextBox runat="server" ID="txtNumberOfParents" AutoPostBack="true" OnTextChanged="txtNumberOfParents_TextChanged" /><br /> 
    <br /> 
    <asp:GridView runat="server" ID="gvNumberOfChildren" AutoGenerateColumns="false"> 
     <Columns> 
      <asp:TemplateField HeaderText="No. of Parents"> 
       <ItemTemplate> 
        <%# Container.DataItemIndex + 1 %> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="No. of Children"> 
       <ItemTemplate> 
        <asp:TextBox runat="server" ID="txtNumberOfChildren" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 

そして、あなたの分離コードでは、このような何か:

GridViewコントロール(または任意の他のデータバインドされたコントロールが)かなりの任意の配列にバインドすることができ
protected void txtNumberOfParents_TextChanged(object sender, EventArgs e) 
    { 
     int numParents = 0; 
     int[] bindingSource = null; 

     Int32.TryParse(txtNumberOfParents.Text, out numParents); 

     if (numParents > 0) 
     { 
      bindingSource = new int[numParents]; 
     } 

     gvNumberOfChildren.DataSource = bindingSource; 
     gvNumberOfChildren.DataBind(); 
    } 

かIEnumerableは、リスト(t)、辞書、配列などを使用できることを意味します。

+0

ありがとうございました。非常に良い解決策。 :) –

関連する問題