2011-12-05 14 views
1

私はこの問題にひどく悩まされています。ユーザーがボタンをクリックして行を追加できるページを作成する必要があります。たとえば、2つのテキストボックス(名前と生年月日)を持つ最初の行と、「行を追加」ボタンがある2番目の行があります。ユーザーが[行を追加]ボタンをクリックすると、最初の行が複製され、繰り返されますが、ユーザーは5行以上を追加することはできません。その後、すべての情報をSQLテーブルに保存する必要があります。これはC#でどのように達成できますか?ボタンをクリックしてテキストボックスの行を追加してください

サンプルASP.NETを添付しています。誰でも私を助けてくれる?

PS:すでに「テーブルWebサーバーコントロールに行とセルを動的に追加する」を読んで試しましたが、それは私のためには機能しません。

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>Testing Adding Rows</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div>  
     <asp:Table ID="Table1" runat="server" width="400" style="border:[none][0]; border-color:White; border-style:hidden">     
      <asp:TableRow ID="TableRow1" runat="server"> 
       <asp:TableCell runat="server" nowrap="nowrap" Width= "70"> 
        <asp:Label ID="nameLabel" runat="server" Text="Your Name" Font-Size="X-Small"></asp:Label> 
       </asp:TableCell> 
       <asp:TableCell runat="server" nowrap="nowrap" Width= "100"> 
        <asp:TextBox ID="tb_name" runat="server" Font-Size="Smaller"></asp:TextBox> 
        <asp:RequiredFieldValidator ID="nameValidator" runat="server" ControlToValidate="tb_name" Font-Size="Smaller">*</asp:RequiredFieldValidator> 
       </asp:TableCell> 

       <asp:TableCell runat="server" nowrap="nowrap" Width= "70"> 
        <asp:Label ID="dateLabel" runat="server" Text="Birthdate" Font-Size="Smaller" ></asp:Label> 
       </asp:TableCell>       
       <asp:TableCell runat="server" Width= "100"> 
        <asp:TextBox ID="tb_date" runat="server" Font-Size="Smaller"></asp:TextBox> 
        <asp:RequiredFieldValidator ID="dateValidator" runat="server" ControlToValidate="tb_date" Font-Size="Smaller">*</asp:RequiredFieldValidator> 
       </asp:TableCell> 

      </asp:TableRow> 


      <asp:TableRow ID="TableRow2" runat="server"> 
       <asp:TableCell runat="server" align="left" Width= "100"> 
        <asp:Button ID="addRow" runat="server" Height="22px" Text="Add Row" 
           ToolTip="Click to add another row" onclick="ButtonAddRow_Click" /> 
       </asp:TableCell> 
      </asp:TableRow> 


      <asp:TableRow ID="TableRow3" runat="server"> 
       <asp:TableCell runat="server" bordercolor="#FFFFFF"> </asp:TableCell> 

       <asp:TableCell runat="server" align="left" nowrap="nowrap" bordercolor="#FFFFFF"> 
        <asp:Label ID="msg" runat="server" ForeColor="Red" Font-Size="Smaller"></asp:Label> 
        <asp:ValidationSummary ID="LogonValidationSummary" HeaderText="All the fields (*) are required." DisplayMode="SingleParagraph" 
              Font-Italic="true" ShowSummary="True" EnableClientScript="true" runat="server" Font-Size="Smaller"/> 
       </asp:TableCell> 
      </asp:TableRow> 

      <asp:TableRow ID="TableRow4" runat="server"> 
       <asp:TableCell ID="TableCell10" runat="server" bordercolor="#FFFFFF">  </asp:TableCell> 

       <asp:TableCell ID="TableCell11" runat="server" align="left" bordercolor="#FFFFFF"> 
        <asp:Button ID="ButtonSubmit" runat="server" Height="22px" Text="Submit" Width="79px" onclick="ButtonSubmit_Click" /> 
       </asp:TableCell> 
      </asp:TableRow> 

     </asp:Table>  
    </div> 
    </form> 
</body> 
</html> 
+0

@Pranayはい、私は間違いなくそれを行います。 btwは、GridViewコントロールを使用するあなたの考えが好きでした、私はそれを試してみます。 – AlwaysANovice

+0

あなたのお役に立てていただきありがとうございます!しかし、私はまだ行のすべての情報を収集し、それらをSQLテーブルに保存する必要がある部分に立ち往生しています、誰もそれを私を助けてください? – AlwaysANovice

答えて

0

あなたではなく、テーブルを使用するよりもGridViewの行にランタイムを追加するよりも、GridViewコントロールを利用すると、場合、私はしたいと思います。それはあなたの努力をさらに減らすでしょう。ここ

はあなたのためのコードです:Adding Dynamic Rows in GridView with TextBoxes enter image description here

+0

ありがとうございました。今は少なくとも最初の行を正しくクローンしています。しかし、私はまだ行からすべての情報を収集し、SQLテーブル、任意の提案PLZに保存する方法に立ち往生ですか? – AlwaysANovice

+0

はいデータを1つのxamlに入れて読み取ることができます。また、openxamlを使用してバルクデータを挿入することもできます –

1

このコードスニペットあなたがこの方法を行うことができますちょうどヒント..です

TableRow row = new TableRow(); 
    for (int j = 0; j < colsCount; j++) 
    { 
     TableCell cell = new TableCell(); 
     TextBox tb = new TextBox(); 
      tb.ID = "TextBoxRow_" + i + "Col_" + j; 
      cell.Controls.Add(tb); 
      row.Cells.Add(cell); 
     } 

    Table1.Rows.Add(row); 
+0

すばやくご回答いただきありがとうございます。しかし、私が既に言及したように、私はMSDNのページからこれを試してみましたが、私が探していたものを正確には実行していません(ADD ROWボタンを1回だけクリックした後、私は一度に1つの行を追加したい)。とにかくありがとう!! – AlwaysANovice

+0

これはボタンクリックイベントで呼び出すだけですが、問題はありますか? – FosterZ

+0

はい、私は彼らがここにどのように表示されているのか正確に行いました:http://msdn.microsoft.com/en-us/library/7bewx260.aspxしかし、それは私に私が期待していたものとは異なる出力を与えています。ああ、これを試している間、私は "Table1.Rows.Add(tRow)"行を内側のループの直後に移動しました。 – AlwaysANovice

関連する問題