在Gridview中显示表数据

时间:2016-06-27 08:56:59

标签: c# asp.net

这里我试图显示用户在表格中输入的数据。我想在Gridview中添加这些数据。如表中所示,用户将输入数据,然后此数据必须保存在Gridview中,并且必须保存在DataBase中。现在我想在Gridview中保存这些数据。

此处输入数据的表格代码。这里用户将输入数据。

    <asp:Table> //Table
    <asp:TableRow>
                            <asp:TableCell>
                                <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                                </asp:TableCell>
                             <asp:TableCell>
                                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                                </asp:TableCell>
                             <asp:TableCell>
                                <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
                                </asp:TableCell>
                             <asp:TableCell>
                                 <asp:TextBox ID="FromDate" runat="server"></asp:TextBox>
                             </asp:TableCell>
                             <asp:TableCell>
                                 <asp:TextBox ID="ToDate" runat="server"></asp:TextBox>
                             </asp:TableCell>
                             <asp:TableCell>
                                <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
                                </asp:TableCell>
                        </asp:TableRow> 
                    </asp:Table>

以下是在Gridview中添加表格数据的按钮。当用户点击此按钮时,用户在表格中输入的数据应显示在gridview中。

     <button id="AddMore_Button" class="btn btn-primary" onclick="Save_Info()">Add More</button>  //button

以下是Gridview的代码,用于显示User输入的表格中的信息。此gridview将显示在表中输入的数据。

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
                                    <Columns>
                                        <asp:BoundField HeaderText="Name" />
                                        <asp:BoundField HeaderText="Address" />
                                        <asp:BoundField HeaderText="Contact" />
                                        <asp:BoundField HeaderText="From Date" />
                                        <asp:BoundField HeaderText="To Date" />
                                        <asp:BoundField HeaderText="Website" />
                                    </Columns>

以下是显示数据的C#代码。此处用户输入的表格数据将显示在gridview中。

    protected void Save_Info(object sender, EventArgs e)
            {
                DataTable dt = new DataTable(); //Datatable

                dt.Columns.Add(TextBox1.Text);
                dt.Columns.Add(TextBox2.Text);
                dt.Columns.Add(TextBox3.Text);
                dt.Columns.Add(FromDate.Text);
                dt.Columns.Add(ToDate.Text);
                dt.Columns.Add(TextBox6.Text);
                GridView1.DataSource = dt;  //Gridview
                GridView1.DataBind(); //binding data to Gridview
               }

当我点击&#34; Add_More&#34;按钮它不是在Gridview中保存数据而不是显示数据。如何使用C#实现这一目标。         这段代码有什么不对.. ??请告诉我。

2 个答案:

答案 0 :(得分:2)

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
    <Columns>
        <asp:BoundField HeaderText="Name" DataField="Name" />
        <asp:BoundField HeaderText="Address" DataField="Address"/>
        <asp:BoundField HeaderText="Contact" DataField="Contact" />
        <asp:BoundField HeaderText="From Date" DataField="FromDate" />
        <asp:BoundField HeaderText="To Date" DataField="ToDate" />
        <asp:BoundField HeaderText="Website"  DataField="Website"/>
    </Columns>
</asp:GridView>

将此代码放在按钮点击事件中:

{    
    DataTable dt = new DataTable();
    dt.Columns.Add("Name");
    dt.Columns.Add("Address");
    dt.Columns.Add("Contact");
    dt.Columns.Add("FromDate");
    dt.Columns.Add("ToDate");
    dt.Columns.Add("Website");

    DataRow dr1 = dt.NewRow();

    dr1["Name"] = TextBox1.Text;
    dr1["Address"] = TextBox2.Text;
    dr1["Contact"] = TextBox3.Text;
    dr1["FromDate"] = FromDate.Text;
    dr1["ToDate"] = ToDate.Text;
    dr1["Website"] = TextBox6.Text;

    dt.Rows.Add(dr1);
    GridView1.DataSource = dt;  
    GridView1.DataBind(); 
}

这是一段有效的代码。

答案 1 :(得分:0)

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
   <Columns>
      <asp:BoundField HeaderText="Name" DataField="Name" />
      <asp:BoundField HeaderText="Address" DataField="Address"/>
      <asp:BoundField HeaderText="Contact" DataField="Contact"/>
      <asp:BoundField HeaderText="From Date" DataField="FromDate"/>
      <asp:BoundField HeaderText="To Date" DataField="ToDate"/>
      <asp:BoundField HeaderText="Website" DataField="Website"/>
   </Columns>

在C#代码方面你可以这样做

DataTable dt = new DataTable();
protected void Save_Info(object sender, EventArgs e)
  {
    DataRow dr1 = dt.NewRow();

    dr1["Name"] =TextBox1.Text;
    dr1["Address"] =TextBox2.Text;
    dr1["Contact"] =TextBox3.Text;
    dr1["FromDate"] =FromDate.Text;
    dr1["ToDate"] =ToDate.Text;
    dr1["Website"] =TextBox6.Text;
    dt.Rows.Add(dr1); 
    GridView1.DataSource = dt;  //Gridview
    GridView1.DataBind(); //binding data to Gridview
 }